Spaces:
Sleeping
Sleeping
| import logging | |
| import os | |
| import sys | |
| from obsei.analyzer.dummy_analyzer import DummyAnalyzer, DummyAnalyzerConfig | |
| from obsei.processor import Processor | |
| from obsei.sink.slack_sink import SlackSink, SlackSinkConfig | |
| from obsei.source.playstore_scrapper import (PlayStoreScrapperConfig, | |
| PlayStoreScrapperSource) | |
| from obsei.workflow.store import WorkflowStore | |
| from obsei.workflow.workflow import Workflow, WorkflowConfig | |
| def print_state(identifier: str): | |
| logger.info(f"Source State: {source.store.get_source_state(identifier)}") | |
| logger = logging.getLogger(__name__) | |
| logging.basicConfig(stream=sys.stdout, level=logging.INFO) | |
| workflow_store = WorkflowStore() | |
| source_config = PlayStoreScrapperConfig( | |
| app_url='https://play.google.com/store/apps/details?id=com.google.android.gm&hl=en_IN&gl=US', | |
| max_count=3 | |
| ) | |
| source = PlayStoreScrapperSource(store=workflow_store) | |
| sink_config = SlackSinkConfig( | |
| slack_token=os.environ["SLACK_TOKEN"], | |
| channel_id="C01TUPZ23NZ", | |
| jinja_template=""" | |
| ``` | |
| {%- for key, value in payload.items() recursive%} | |
| {%- if value is mapping -%} | |
| {{loop(value.items())}} | |
| {%- else %} | |
| {{key}}: {{value}} | |
| {%- endif %} | |
| {%- endfor%} | |
| ``` | |
| """ | |
| ) | |
| sink = SlackSink(store=workflow_store) | |
| analyzer_config = DummyAnalyzerConfig() | |
| analyzer = DummyAnalyzer() | |
| workflow = Workflow( | |
| config=WorkflowConfig( | |
| source_config=source_config, | |
| sink_config=sink_config, | |
| analyzer_config=analyzer_config, | |
| ), | |
| ) | |
| workflow_store.add_workflow(workflow) | |
| processor = Processor( | |
| analyzer=analyzer, sink=sink, source=source, analyzer_config=analyzer_config | |
| ) | |
| processor.process(workflow=workflow) | |
| print_state(workflow.id) | |