{"nodes": [{"id": "d_yt_channel_scraper_src_yt_scraper_monitor_py", "label": "monitor.py", "file_type": "code", "source_file": "src/yt_scraper/monitor.py", "source_location": "L1"}, {"id": "d_yt_channel_scraper_src_yt_scraper_monitor_watch_loop", "label": "watch_loop()", "file_type": "code", "source_file": "src/yt_scraper/monitor.py", "source_location": "L18", "_callable": true}, {"id": "config", "label": "Config", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "D:\\yt-channel-scraper\\src\\yt_scraper\\monitor.py"}, {"id": "store", "label": "Store", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "D:\\yt-channel-scraper\\src\\yt_scraper\\monitor.py"}, {"id": "d_yt_channel_scraper_src_yt_scraper_monitor_run_once", "label": "_run_once()", "file_type": "code", "source_file": "src/yt_scraper/monitor.py", "source_location": "L55", "_callable": true}, {"id": "d_yt_channel_scraper_src_yt_scraper_monitor_keep_ref", "label": "_keep_ref()", "file_type": "code", "source_file": "src/yt_scraper/monitor.py", "source_location": "L120", "_callable": true}, {"id": "d_yt_channel_scraper_src_yt_scraper_monitor_extract_handle", "label": "_extract_handle()", "file_type": "code", "source_file": "src/yt_scraper/monitor.py", "source_location": "L134", "_callable": true}, {"id": "d_yt_channel_scraper_src_yt_scraper_monitor_rationale_28", "label": "Discover + process pending videos for a channel, optionally on an interval.", "file_type": "rationale", "source_file": "src/yt_scraper/monitor.py", "source_location": "L28"}, {"id": "d_yt_channel_scraper_src_yt_scraper_monitor_rationale_121", "label": "Same shorts/live rules the store was populated under \u2014 see jobs._keep_ref.", "file_type": "rationale", "source_file": "src/yt_scraper/monitor.py", "source_location": "L121"}], "edges": [{"source": "d_yt_channel_scraper_src_yt_scraper_monitor_py", "target": "logging", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "src/yt_scraper/monitor.py", "source_location": "L3", "weight": 1.0}, {"source": "d_yt_channel_scraper_src_yt_scraper_monitor_py", "target": "time", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "src/yt_scraper/monitor.py", "source_location": "L4", "weight": 1.0}, {"source": "d_yt_channel_scraper_src_yt_scraper_monitor_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "src/yt_scraper/monitor.py", "source_location": "L5", "weight": 1.0}, {"source": "d_yt_channel_scraper_src_yt_scraper_monitor_py", "target": "d_yt_channel_scraper_src_yt_scraper_config_py", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "src/yt_scraper/monitor.py", "source_location": "L7", "weight": 1.0}, {"source": "d_yt_channel_scraper_src_yt_scraper_monitor_py", "target": "d_yt_channel_scraper_src_yt_scraper_cookies_py", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "src/yt_scraper/monitor.py", "source_location": "L8", "weight": 1.0}, {"source": "d_yt_channel_scraper_src_yt_scraper_monitor_py", "target": "d_yt_channel_scraper_src_yt_scraper_discover_py", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "src/yt_scraper/monitor.py", "source_location": "L9", "weight": 1.0}, {"source": "d_yt_channel_scraper_src_yt_scraper_monitor_py", "target": "d_yt_channel_scraper_src_yt_scraper_pipeline_py", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "src/yt_scraper/monitor.py", "source_location": "L10", "weight": 1.0}, {"source": "d_yt_channel_scraper_src_yt_scraper_monitor_py", "target": "d_yt_channel_scraper_src_yt_scraper_ratelimit_py", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "src/yt_scraper/monitor.py", "source_location": "L11", "weight": 1.0}, {"source": "d_yt_channel_scraper_src_yt_scraper_monitor_py", "target": "d_yt_channel_scraper_src_yt_scraper_store_py", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "src/yt_scraper/monitor.py", "source_location": "L12", "weight": 1.0}, {"source": "d_yt_channel_scraper_src_yt_scraper_monitor_py", "target": "d_yt_channel_scraper_src_yt_scraper_monitor_watch_loop", "relation": "contains", "confidence": "EXTRACTED", "source_file": "src/yt_scraper/monitor.py", "source_location": "L18", "weight": 1.0}, {"source": "d_yt_channel_scraper_src_yt_scraper_monitor_watch_loop", "target": "config", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "src/yt_scraper/monitor.py", "source_location": "L18", "weight": 1.0}, {"source": "d_yt_channel_scraper_src_yt_scraper_monitor_watch_loop", "target": "store", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "src/yt_scraper/monitor.py", "source_location": "L18", "weight": 1.0}, {"source": "d_yt_channel_scraper_src_yt_scraper_monitor_py", "target": "d_yt_channel_scraper_src_yt_scraper_monitor_run_once", "relation": "contains", "confidence": "EXTRACTED", "source_file": "src/yt_scraper/monitor.py", "source_location": "L55", "weight": 1.0}, {"source": "d_yt_channel_scraper_src_yt_scraper_monitor_run_once", "target": "config", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "src/yt_scraper/monitor.py", "source_location": "L55", "weight": 1.0}, {"source": "d_yt_channel_scraper_src_yt_scraper_monitor_run_once", "target": "store", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "src/yt_scraper/monitor.py", "source_location": "L55", "weight": 1.0}, {"source": "d_yt_channel_scraper_src_yt_scraper_monitor_py", "target": "d_yt_channel_scraper_src_yt_scraper_monitor_keep_ref", "relation": "contains", "confidence": "EXTRACTED", "source_file": "src/yt_scraper/monitor.py", "source_location": "L120", "weight": 1.0}, {"source": "d_yt_channel_scraper_src_yt_scraper_monitor_keep_ref", "target": "config", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "src/yt_scraper/monitor.py", "source_location": "L120", "weight": 1.0}, {"source": "d_yt_channel_scraper_src_yt_scraper_monitor_py", "target": "d_yt_channel_scraper_src_yt_scraper_monitor_extract_handle", "relation": "contains", "confidence": "EXTRACTED", "source_file": "src/yt_scraper/monitor.py", "source_location": "L134", "weight": 1.0}, {"source": "d_yt_channel_scraper_src_yt_scraper_monitor_watch_loop", "target": "d_yt_channel_scraper_src_yt_scraper_monitor_run_once", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "src/yt_scraper/monitor.py", "source_location": "L44", "weight": 1.0}, {"source": "d_yt_channel_scraper_src_yt_scraper_monitor_run_once", "target": "d_yt_channel_scraper_src_yt_scraper_monitor_keep_ref", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "src/yt_scraper/monitor.py", "source_location": "L80", "weight": 1.0}, {"source": "d_yt_channel_scraper_src_yt_scraper_monitor_run_once", "target": "d_yt_channel_scraper_src_yt_scraper_monitor_extract_handle", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "src/yt_scraper/monitor.py", "source_location": "L86", "weight": 1.0}, {"source": "d_yt_channel_scraper_src_yt_scraper_monitor_rationale_28", "target": "d_yt_channel_scraper_src_yt_scraper_monitor_watch_loop", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "src/yt_scraper/monitor.py", "source_location": "L28", "weight": 1.0}, {"source": "d_yt_channel_scraper_src_yt_scraper_monitor_rationale_121", "target": "d_yt_channel_scraper_src_yt_scraper_monitor_keep_ref", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "src/yt_scraper/monitor.py", "source_location": "L121", "weight": 1.0}], "raw_calls": [{"caller_nid": "d_yt_channel_scraper_src_yt_scraper_monitor_watch_loop", "callee": "_emit", "is_member_call": false, "source_file": "src/yt_scraper/monitor.py", "source_location": "L37", "receiver": null}, {"caller_nid": "d_yt_channel_scraper_src_yt_scraper_monitor_watch_loop", "callee": "sleep", "is_member_call": true, "source_file": "src/yt_scraper/monitor.py", "source_location": "L40", "receiver": "time"}, {"caller_nid": "d_yt_channel_scraper_src_yt_scraper_monitor_watch_loop", "callee": "_emit", "is_member_call": false, "source_file": "src/yt_scraper/monitor.py", "source_location": "L46", "receiver": null}, {"caller_nid": "d_yt_channel_scraper_src_yt_scraper_monitor_watch_loop", "callee": "exception", "is_member_call": true, "source_file": "src/yt_scraper/monitor.py", "source_location": "L47", "receiver": "log"}, {"caller_nid": "d_yt_channel_scraper_src_yt_scraper_monitor_watch_loop", "callee": "_emit", "is_member_call": false, "source_file": "src/yt_scraper/monitor.py", "source_location": "L51", "receiver": null}, {"caller_nid": "d_yt_channel_scraper_src_yt_scraper_monitor_watch_loop", "callee": "sleep", "is_member_call": true, "source_file": "src/yt_scraper/monitor.py", "source_location": "L52", "receiver": "time"}, {"caller_nid": "d_yt_channel_scraper_src_yt_scraper_monitor_run_once", "callee": "known_video_ids", "is_member_call": true, "source_file": "src/yt_scraper/monitor.py", "source_location": "L71", "receiver": "store"}, {"caller_nid": "d_yt_channel_scraper_src_yt_scraper_monitor_run_once", "callee": "discover_incremental", "is_member_call": false, "source_file": "src/yt_scraper/monitor.py", "source_location": "L72", "receiver": null}, {"caller_nid": "d_yt_channel_scraper_src_yt_scraper_monitor_run_once", "callee": "latest_upload_date", "is_member_call": true, "source_file": "src/yt_scraper/monitor.py", "source_location": "L79", "receiver": "store"}, {"caller_nid": "d_yt_channel_scraper_src_yt_scraper_monitor_run_once", "callee": "upsert_channel", "is_member_call": true, "source_file": "src/yt_scraper/monitor.py", "source_location": "L85", "receiver": "store"}, {"caller_nid": "d_yt_channel_scraper_src_yt_scraper_monitor_run_once", "callee": "update_channel_meta", "is_member_call": true, "source_file": "src/yt_scraper/monitor.py", "source_location": "L89", "receiver": "store"}, {"caller_nid": "d_yt_channel_scraper_src_yt_scraper_monitor_run_once", "callee": "upsert_videos", "is_member_call": true, "source_file": "src/yt_scraper/monitor.py", "source_location": "L90", "receiver": "store"}, {"caller_nid": "d_yt_channel_scraper_src_yt_scraper_monitor_run_once", "callee": "mark_channel_synced", "is_member_call": true, "source_file": "src/yt_scraper/monitor.py", "source_location": "L91", "receiver": "store"}, {"caller_nid": "d_yt_channel_scraper_src_yt_scraper_monitor_run_once", "callee": "_emit", "is_member_call": false, "source_file": "src/yt_scraper/monitor.py", "source_location": "L92", "receiver": null}, {"caller_nid": "d_yt_channel_scraper_src_yt_scraper_monitor_run_once", "callee": "get_pending", "is_member_call": true, "source_file": "src/yt_scraper/monitor.py", "source_location": "L97", "receiver": "store"}, {"caller_nid": "d_yt_channel_scraper_src_yt_scraper_monitor_run_once", "callee": "_emit", "is_member_call": false, "source_file": "src/yt_scraper/monitor.py", "source_location": "L99", "receiver": null}, {"caller_nid": "d_yt_channel_scraper_src_yt_scraper_monitor_run_once", "callee": "resolve_active_path", "is_member_call": false, "source_file": "src/yt_scraper/monitor.py", "source_location": "L105", "receiver": null}, {"caller_nid": "d_yt_channel_scraper_src_yt_scraper_monitor_run_once", "callee": "_emit", "is_member_call": false, "source_file": "src/yt_scraper/monitor.py", "source_location": "L108", "receiver": null}, {"caller_nid": "d_yt_channel_scraper_src_yt_scraper_monitor_run_once", "callee": "process_video", "is_member_call": false, "source_file": "src/yt_scraper/monitor.py", "source_location": "L111", "receiver": null}, {"caller_nid": "d_yt_channel_scraper_src_yt_scraper_monitor_run_once", "callee": "polite_sleep", "is_member_call": false, "source_file": "src/yt_scraper/monitor.py", "source_location": "L117", "receiver": null}, {"caller_nid": "d_yt_channel_scraper_src_yt_scraper_monitor_keep_ref", "callee": "keep", "is_member_call": false, "indirect": true, "context": "return", "source_file": "src/yt_scraper/monitor.py", "source_location": "L131"}, {"caller_nid": "d_yt_channel_scraper_src_yt_scraper_monitor_extract_handle", "callee": "split", "is_member_call": true, "source_file": "src/yt_scraper/monitor.py", "source_location": "L136", "receiver": null}, {"caller_nid": "d_yt_channel_scraper_src_yt_scraper_monitor_extract_handle", "callee": "split", "is_member_call": true, "source_file": "src/yt_scraper/monitor.py", "source_location": "L136", "receiver": "url"}]}