From f20d1c409925b7bc30fce0bf8d10aa9a433b21ad Mon Sep 17 00:00:00 2001 From: YuanHui <31339626+alsesa@users.noreply.github.com> Date: Fri, 11 Jul 2025 15:50:10 +0800 Subject: [PATCH] update gitignore --- .gitignore | 2 + .../41174fa8-9747-4245-92e5-fec569f8212f.m3u8 | 901 ++++++++++++++++++ courses.db | Bin 7843840 -> 7884800 bytes json/705.json | 761 +++++++++++++++ main.py | 4 +- markdown_transcribe_rag.py | 233 +++++ 6 files changed, 1899 insertions(+), 2 deletions(-) create mode 100644 course/704/m3u8/41174fa8-9747-4245-92e5-fec569f8212f.m3u8 create mode 100644 json/705.json create mode 100644 markdown_transcribe_rag.py diff --git a/.gitignore b/.gitignore index 78af7e3..f0d85fd 100644 --- a/.gitignore +++ b/.gitignore @@ -35,3 +35,5 @@ # 其他格式的媒体文件 /.venv/ /.idea/ +/__pycache__ +.DS_Store diff --git a/course/704/m3u8/41174fa8-9747-4245-92e5-fec569f8212f.m3u8 b/course/704/m3u8/41174fa8-9747-4245-92e5-fec569f8212f.m3u8 new file mode 100644 index 0000000..c6d7832 --- /dev/null +++ b/course/704/m3u8/41174fa8-9747-4245-92e5-fec569f8212f.m3u8 @@ -0,0 +1,901 @@ +#EXTM3U +#EXT-X-VERSION:3 +#EXT-X-ALLOW-CACHE:NO +#EXT-X-TARGETDURATION:10 +#EXT-X-MEDIA-SEQUENCE:0 +#EXT-X-DISCONTINUITY +#EXTINF:8.316, +/fragments/z1.xuexi.80000002/1751284427117-1751284435433.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284436592-1751284444925.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284444928-1751284453261.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751284453273-1751284461607.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284461607-1751284469940.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284469934-1751284478267.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751284478260-1751284486594.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284486598-1751284494931.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284494929-1751284503262.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751284503276-1751284511610.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284511607-1751284519940.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284519936-1751284528269.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751284528271-1751284536605.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284536608-1751284544941.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284544925-1751284553258.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751284553266-1751284561600.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284561605-1751284569938.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284569928-1751284578261.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751284578267-1751284586601.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284586605-1751284594938.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284594937-1751284603270.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751284603274-1751284611608.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284611620-1751284619953.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284619926-1751284628259.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751284628265-1751284636599.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284636608-1751284644941.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284644940-1751284653273.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751284653274-1751284661608.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284661608-1751284669941.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284669941-1751284678274.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751284678271-1751284686605.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284686608-1751284694941.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284694936-1751284703269.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751284703270-1751284711604.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284711607-1751284719940.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284719940-1751284728273.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751284728274-1751284736608.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284736608-1751284744941.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284744940-1751284753273.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751284753275-1751284761609.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284761607-1751284769940.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284769925-1751284778258.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751284778270-1751284786604.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284786605-1751284794938.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284794949-1751284803282.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751284803284-1751284811618.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284811609-1751284819942.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284819943-1751284828276.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751284828276-1751284836610.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284836609-1751284844942.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284844928-1751284853261.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751284853263-1751284861597.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284861609-1751284869942.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284869936-1751284878269.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751284878278-1751284886612.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284886606-1751284894939.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284894940-1751284903273.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751284903274-1751284911608.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284911606-1751284919939.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284919937-1751284928270.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751284928268-1751284936602.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284936609-1751284944942.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284944934-1751284953267.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751284953272-1751284961606.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284961601-1751284969934.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284969940-1751284978273.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751284978273-1751284986607.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284986594-1751284994927.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751284994928-1751285003261.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285003274-1751285011608.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285011608-1751285019941.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285019937-1751285028270.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285028273-1751285036607.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285036606-1751285044939.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285044941-1751285053274.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285053272-1751285061606.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285061597-1751285069930.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285069927-1751285078260.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285078268-1751285086602.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285086602-1751285094935.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285094940-1751285103273.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285103285-1751285111619.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285111607-1751285119940.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285119940-1751285128273.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285128273-1751285136607.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285136591-1751285144924.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285144930-1751285153263.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285153274-1751285161608.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285161605-1751285169938.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285169939-1751285178272.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285178273-1751285186607.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285186606-1751285194939.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285194940-1751285203273.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285203280-1751285211614.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285211616-1751285219949.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285219935-1751285228268.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285228272-1751285236606.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285236614-1751285244947.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285244940-1751285253273.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285253272-1751285261606.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285261607-1751285269940.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285269940-1751285278273.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285278272-1751285286606.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285286603-1751285294936.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285294937-1751285303270.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285303278-1751285311612.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285311607-1751285319940.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285319933-1751285328266.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285328270-1751285336604.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285336607-1751285344940.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285344939-1751285353272.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285353263-1751285361597.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285361591-1751285369924.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285369935-1751285378268.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285378280-1751285386614.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285386601-1751285394934.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285394939-1751285403272.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285403269-1751285411603.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285411606-1751285419939.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285419939-1751285428272.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285428267-1751285436601.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285436603-1751285444936.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285444948-1751285453281.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285453276-1751285461610.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285461601-1751285469934.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285469939-1751285478272.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285478279-1751285486613.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285486606-1751285494939.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285494938-1751285503271.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285503280-1751285511614.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285511604-1751285519937.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285519941-1751285528274.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285528273-1751285536607.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285536608-1751285544941.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285544939-1751285553272.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285553272-1751285561606.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285561605-1751285569938.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285569939-1751285578272.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285578259-1751285586593.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285586606-1751285594939.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285594930-1751285603263.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285603271-1751285611605.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285611605-1751285619938.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285619939-1751285628272.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285628270-1751285636604.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285636606-1751285644939.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285644946-1751285653279.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285653266-1751285661600.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285661605-1751285669938.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285669930-1751285678263.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285678281-1751285686615.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285686602-1751285694935.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285694939-1751285703272.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285703274-1751285711608.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285711607-1751285719940.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285719938-1751285728271.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285728262-1751285736596.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285736601-1751285744934.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285744939-1751285753272.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285753288-1751285761622.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285761616-1751285769949.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285769951-1751285778284.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285778276-1751285786610.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285786618-1751285794951.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285794939-1751285803272.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285803273-1751285811607.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285811609-1751285819942.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285819944-1751285828277.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285828285-1751285836619.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285836613-1751285844946.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285844940-1751285853273.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285853276-1751285861610.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285861616-1751285869949.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285869939-1751285878272.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285878276-1751285886610.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285886615-1751285894948.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285894944-1751285903277.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285903274-1751285911608.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285911611-1751285919944.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285919945-1751285928278.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285928283-1751285936617.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285936625-1751285944958.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285944939-1751285953272.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285953273-1751285961607.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285961605-1751285969938.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285969941-1751285978274.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751285978287-1751285986621.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285986609-1751285994942.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751285994949-1751286003282.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286003280-1751286011614.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286011616-1751286019949.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286019957-1751286028290.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286028283-1751286036617.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286036605-1751286044938.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286044949-1751286053282.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286053286-1751286061620.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286061623-1751286069956.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286069955-1751286078288.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286078284-1751286086618.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286086622-1751286094955.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286094938-1751286103271.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286103272-1751286111606.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286111605-1751286119938.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286119939-1751286128272.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286128280-1751286136614.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286136607-1751286144940.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286144946-1751286153279.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286153292-1751286161626.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286161629-1751286169962.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286169943-1751286178276.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286178276-1751286186610.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286186606-1751286194939.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286194939-1751286203272.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286203279-1751286211613.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286211627-1751286219960.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286219950-1751286228283.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286228289-1751286236623.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286236604-1751286244937.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286244939-1751286253272.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286253275-1751286261609.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286261606-1751286269939.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286269959-1751286278292.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286278290-1751286286624.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286286627-1751286294960.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286294950-1751286303283.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286303287-1751286311621.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286311609-1751286319942.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286319940-1751286328273.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286328274-1751286336608.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286336608-1751286344941.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286344948-1751286353281.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286353288-1751286361622.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286361612-1751286369945.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286369951-1751286378284.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286378291-1751286386625.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286386604-1751286394937.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286394939-1751286403272.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286403271-1751286411605.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286411604-1751286419937.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286419947-1751286428280.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286428278-1751286436612.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286436608-1751286444941.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286444960-1751286453293.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286453285-1751286461619.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286461620-1751286469953.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286469938-1751286478271.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286478279-1751286486613.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286486606-1751286494939.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286494953-1751286503286.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286503284-1751286511618.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286511625-1751286519958.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286519951-1751286528284.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286528284-1751286536618.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286536617-1751286544950.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286544944-1751286553277.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286553279-1751286561613.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286561605-1751286569938.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286569939-1751286578272.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286578274-1751286586608.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286586613-1751286594946.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286594948-1751286603281.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286603271-1751286611605.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286611603-1751286619936.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286619938-1751286628271.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286628280-1751286636614.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286636619-1751286644952.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286644956-1751286653289.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286653274-1751286661608.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286661627-1751286669960.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286669962-1751286678295.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286678270-1751286686604.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286686609-1751286694942.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286694944-1751286703277.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286703280-1751286711614.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286711606-1751286719939.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286719947-1751286728280.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286728283-1751286736617.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286736615-1751286744948.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286744943-1751286753276.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286753271-1751286761605.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286761603-1751286769936.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286769937-1751286778270.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286778279-1751286786613.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286786607-1751286794940.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286794957-1751286803290.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286803289-1751286811623.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286811612-1751286819945.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286819947-1751286828280.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286828269-1751286836603.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286836609-1751286844942.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286844944-1751286853277.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286853280-1751286861614.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286861612-1751286869945.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286869941-1751286878274.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286878289-1751286886623.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286886623-1751286894956.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286894950-1751286903283.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286903269-1751286911603.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286911607-1751286919940.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286919948-1751286928281.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286928272-1751286936606.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286936607-1751286944940.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286944946-1751286953279.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286953292-1751286961626.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286961619-1751286969952.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286969957-1751286978290.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751286978270-1751286986604.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286986619-1751286994952.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751286994938-1751287003271.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287003270-1751287011604.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287011606-1751287019939.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287019949-1751287028282.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287028290-1751287036624.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287036625-1751287044958.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287044936-1751287053269.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287053269-1751287061603.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287061603-1751287069936.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287069946-1751287078279.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287078283-1751287086617.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287086605-1751287094938.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287094950-1751287103283.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287103289-1751287111623.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287111622-1751287119955.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287119947-1751287128280.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287128276-1751287136610.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287136603-1751287144936.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287144936-1751287153269.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287153277-1751287161611.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287161604-1751287169937.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287169953-1751287178286.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287178279-1751287186613.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287186621-1751287194954.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287194935-1751287203268.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287203271-1751287211605.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287211604-1751287219937.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287219940-1751287228273.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287228285-1751287236619.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287236604-1751287244937.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287244936-1751287253269.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287253288-1751287261622.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287261604-1751287269937.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287269945-1751287278278.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287278270-1751287286604.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287286605-1751287294938.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287294947-1751287303280.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287303287-1751287311621.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287311610-1751287319943.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287319943-1751287328276.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287328281-1751287336615.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287336613-1751287344946.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287344935-1751287353268.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287353273-1751287361607.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287361603-1751287369936.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287369945-1751287378278.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287378281-1751287386615.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287386609-1751287394942.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287394952-1751287403285.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287403271-1751287411605.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287411614-1751287419947.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287419951-1751287428284.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287428270-1751287436604.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287436602-1751287444935.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287444946-1751287453279.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287453284-1751287461618.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287461611-1751287469944.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287469951-1751287478284.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287478281-1751287486615.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287486605-1751287494938.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287494945-1751287503278.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287503272-1751287511606.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287511602-1751287519935.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287519937-1751287528270.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287528281-1751287536615.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287536603-1751287544936.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287544950-1751287553283.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287553278-1751287561612.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287561602-1751287569935.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287569935-1751287578268.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287578274-1751287586608.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287586610-1751287594943.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287594937-1751287603270.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287603277-1751287611611.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287611618-1751287619951.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287619952-1751287628285.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287628285-1751287636619.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287636602-1751287644935.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287644940-1751287653273.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287653269-1751287661603.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287661612-1751287669945.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287669938-1751287678271.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287678277-1751287686611.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287686621-1751287694954.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287694973-1751287703306.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287703283-1751287711617.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287711604-1751287719937.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287719941-1751287728274.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287728268-1751287736602.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287736609-1751287744942.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287744936-1751287753269.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287753277-1751287761611.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287761611-1751287769944.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287769953-1751287778286.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287778288-1751287786622.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287786603-1751287794936.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287794937-1751287803270.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287803280-1751287811614.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287811607-1751287819940.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287819945-1751287828278.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287828277-1751287836611.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287836610-1751287844943.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287844943-1751287853276.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287853285-1751287861619.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287861601-1751287869934.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287869944-1751287878277.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287878278-1751287886612.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287886607-1751287894940.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287894935-1751287903268.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287903284-1751287911618.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287911620-1751287919953.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287919952-1751287928285.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287928269-1751287936603.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287936602-1751287944935.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287944936-1751287953269.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287953273-1751287961607.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287961605-1751287969938.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287969955-1751287978288.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751287978277-1751287986611.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287986612-1751287994945.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751287994954-1751288003287.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751288003268-1751288011602.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751288011603-1751288019936.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751288019937-1751288028270.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751288028268-1751288036602.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751288036605-1751288044938.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751288044945-1751288053278.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751288053271-1751288061605.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751288061604-1751288069937.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751288069945-1751288078278.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751288078270-1751288086604.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751288086608-1751288094941.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751288094948-1751288103281.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751288103268-1751288111602.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751288111611-1751288119944.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751288119953-1751288128286.ts +#EXTINF:8.334, +/fragments/z1.xuexi.80000002/1751288128280-1751288136614.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751288136601-1751288144934.ts +#EXTINF:8.333, +/fragments/z1.xuexi.80000002/1751288144948-1751288153281.ts +#EXT-X-ENDLIST diff --git a/courses.db b/courses.db index 2a88008b29c9a308c6813035ef1a5117a5aad8e8..6c4caefb8075cfce0948a6f3c4dacadafec99e53 100755 GIT binary patch delta 37166 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 ?', (1,)) + cursor.execute('SELECT id, title FROM courses where id >= ?', (start_course_id,)) + course_ids_data = cursor.fetchall() + course_ids = [row[0] for row in course_ids_data] + course_ids_dict = dict(course_ids_data) + logger.info(course_ids_dict) + + # 创建json文件夹 + if not os.path.exists('json'): + os.makedirs('json') + + # 先请求全部的链接获取数据,并将获取到的课程信息保存到数据库中 + for course_id in course_ids: + logger.info(f"Processing course ID: {course_id}") + + json_filename = os.path.join('json', f'{course_id}.json') + copy_json_file_name = os.path.join('course', f'{course_id}', 'json', + f'{course_ids_dict[course_id]}.json').replace('?', '?') + # md_file_name = os.path.join('markdown', f'{course_id}', f'{course_ids_dict[course_id]}.md') + # if os.path.exists(json_filename): + # logger.info(f"Course {course_id} JSON file already exists, using local file.") + # makedirs(f'course/{course_id}/json', exist_ok=True) + # shutil.copy2(json_filename, copy_json_file_name) + # json_to_markdown(copy_json_file_name, md_file_name) + # else: + # continue + + logseq_md_file_name = os.path.join('markdown', f'{course_id}-{course_ids_dict[course_id]}.md') + if os.path.exists(json_filename): + logger.info(f"Course {course_id} JSON file already exists, using local file.") + # shutil.copy2(json_filename, copy_json_file_name) + json_to_markdown(json_filename, logseq_md_file_name, logseq=False) + else: + continue + + +if __name__ == '__main__': + get_content()