Skip to content
Snippets Groups Projects
Commit 3c166480 authored by Gottfried Gaisbauer's avatar Gottfried Gaisbauer
Browse files

--delete-playlist-entry implemented

parent 25b38987
No related branches found
No related tags found
No related merge requests found
......@@ -2,13 +2,19 @@
<project version="4">
<component name="BookmarkManager">
<bookmark url="file://$PROJECT_DIR$/guru.py" line="135" mnemonic="8" />
<bookmark url="file://$PROJECT_DIR$/modules/scheduling/scheduler.py" line="259" mnemonic="1" />
<bookmark url="file://$PROJECT_DIR$/modules/scheduling/scheduler.py" line="258" mnemonic="1" />
</component>
<component name="ChangeListManager">
<list default="true" id="c58ca86a-4167-4474-accb-41439a535514" name="Default" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change beforePath="$PROJECT_DIR$/guru.py" afterPath="$PROJECT_DIR$/guru.py" />
<change beforePath="$PROJECT_DIR$/libraries/base/calendar.py" afterPath="$PROJECT_DIR$/libraries/base/calendar.py" />
<change beforePath="$PROJECT_DIR$/libraries/database/broadcasts.py" afterPath="$PROJECT_DIR$/libraries/database/broadcasts.py" />
<change beforePath="$PROJECT_DIR$/libraries/enum/redischannels.py" afterPath="$PROJECT_DIR$/libraries/enum/redischannels.py" />
<change beforePath="$PROJECT_DIR$/modules/communication/redis/adapter.py" afterPath="$PROJECT_DIR$/modules/communication/redis/adapter.py" />
<change beforePath="$PROJECT_DIR$/modules/controller/controller.py" afterPath="$PROJECT_DIR$/modules/controller/controller.py" />
<change beforePath="$PROJECT_DIR$/modules/scheduling/scheduler.py" afterPath="$PROJECT_DIR$/modules/scheduling/scheduler.py" />
<change beforePath="$PROJECT_DIR$/modules/tools/padavan.py" afterPath="$PROJECT_DIR$/modules/tools/padavan.py" />
</list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="TRACKING_ENABLED" value="true" />
......@@ -19,11 +25,11 @@
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="controller.py" pinned="false" current-in-tab="false">
<file leaf-file-name="controller.py" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/modules/controller/controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="84" column="51" lean-forward="false" selection-start-line="84" selection-start-column="51" selection-end-line="84" selection-end-column="51" />
<state relative-caret-position="150">
<caret line="95" column="26" lean-forward="true" selection-start-line="95" selection-start-column="26" selection-end-line="95" selection-end-column="26" />
<folding>
<element signature="e#43#56#0" expanded="true" />
</folding>
......@@ -34,8 +40,8 @@
<file leaf-file-name="calendar.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/libraries/base/calendar.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="334">
<caret line="327" column="80" lean-forward="false" selection-start-line="327" selection-start-column="80" selection-end-line="327" selection-end-column="80" />
<state relative-caret-position="172">
<caret line="182" column="0" lean-forward="false" selection-start-line="182" selection-start-column="0" selection-end-line="182" selection-end-column="0" />
<folding>
<element signature="e#805#818#0" expanded="true" />
</folding>
......@@ -43,11 +49,21 @@
</provider>
</entry>
</file>
<file leaf-file-name="aura.py" pinned="false" current-in-tab="true">
<file leaf-file-name="aura.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/aura.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="272">
<caret line="24" column="32" lean-forward="false" selection-start-line="24" selection-start-column="32" selection-end-line="24" selection-end-column="32" />
<state relative-caret-position="153">
<caret line="26" column="39" lean-forward="true" selection-start-line="26" selection-start-column="39" selection-end-line="26" selection-end-column="39" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="adapter.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/modules/communication/redis/adapter.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="289">
<caret line="132" column="88" lean-forward="false" selection-start-line="132" selection-start-column="88" selection-end-line="132" selection-end-column="88" />
<folding />
</state>
</provider>
......@@ -56,8 +72,8 @@
<file leaf-file-name="broadcasts.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/libraries/database/broadcasts.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="170">
<caret line="15" column="9" lean-forward="false" selection-start-line="15" selection-start-column="9" selection-end-line="15" selection-end-column="9" />
<state relative-caret-position="159">
<caret line="81" column="33" lean-forward="false" selection-start-line="81" selection-start-column="33" selection-end-line="81" selection-end-column="33" />
<folding>
<element signature="e#47#79#0" expanded="true" />
</folding>
......@@ -65,11 +81,11 @@
</provider>
</entry>
</file>
<file leaf-file-name="communicator.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/modules/communication/liquidsoap/communicator.py">
<file leaf-file-name="client.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/modules/communication/liquidsoap/client.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2210">
<caret line="143" column="28" lean-forward="false" selection-start-line="143" selection-start-column="28" selection-end-line="143" selection-end-column="28" />
<state relative-caret-position="119">
<caret line="7" column="19" lean-forward="true" selection-start-line="7" selection-start-column="19" selection-end-line="7" selection-end-column="19" />
<folding />
</state>
</provider>
......@@ -78,8 +94,8 @@
<file leaf-file-name="scheduler.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/modules/scheduling/scheduler.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-3162">
<caret line="388" column="0" lean-forward="true" selection-start-line="388" selection-start-column="0" selection-end-line="388" selection-end-column="0" />
<state relative-caret-position="133">
<caret line="223" column="51" lean-forward="false" selection-start-line="223" selection-start-column="51" selection-end-line="223" selection-end-column="51" />
<folding>
<element signature="e#1046#1059#0" expanded="true" />
</folding>
......@@ -90,8 +106,8 @@
<file leaf-file-name="guru.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/guru.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="765">
<caret line="54" column="110" lean-forward="false" selection-start-line="54" selection-start-column="89" selection-end-line="54" selection-end-column="110" />
<state relative-caret-position="365">
<caret line="61" column="60" lean-forward="true" selection-start-line="61" selection-start-column="60" selection-end-line="61" selection-end-column="60" />
<folding />
</state>
</provider>
......@@ -100,8 +116,8 @@
<file leaf-file-name="padavan.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/modules/tools/padavan.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2295">
<caret line="138" column="41" lean-forward="false" selection-start-line="138" selection-start-column="41" selection-end-line="138" selection-end-column="41" />
<state relative-caret-position="561">
<caret line="44" column="41" lean-forward="true" selection-start-line="44" selection-start-column="41" selection-end-line="44" selection-end-column="41" />
<folding>
<element signature="e#0#17#0" expanded="true" />
</folding>
......@@ -113,7 +129,7 @@
<entry file="file://$PROJECT_DIR$/libraries/enum/redischannels.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="187">
<caret line="11" column="0" lean-forward="true" selection-start-line="11" selection-start-column="0" selection-end-line="11" selection-end-column="0" />
<caret line="11" column="44" lean-forward="false" selection-start-line="11" selection-start-column="44" selection-end-line="11" selection-end-column="44" />
<folding />
</state>
</provider>
......@@ -130,36 +146,36 @@
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>activate_line</find>
<find>is already act</find>
<find>already active</find>
<find>diff</find>
<find>transaction</find>
<find>diff/</find>
<find>enable</find>
<find>the cop</find>
<find>timeout</find>
<find>upcoming s</find>
<find>DISab</find>
<find>input</find>
<find>switch_mixer_number</find>
<find>switch_mixer_</find>
<find>&quot;select&quot;</find>
<find>pyev</find>
<find>relative</find>
<find>mysql</find>
<find>Config is</find>
<find>/var/audio</find>
<find>/</find>
<find>schedule id</find>
<find>hulla</find>
<find>NoP</find>
<find>work</find>
<find>print</find>
<find>move</find>
<find>move_</find>
<find>run</find>
<find>hou</find>
<find>entry_start_unix</find>
<find>/1</find>
<find>print</find>
<find>delete</find>
<find>creating</find>
<find>creating</find>
<find>store_schedule_entry</find>
<find>sel</find>
<find>self.programme</find>
<find>good</find>
<find>nopr</find>
<find>get_act_programme</find>
<find>nopro</find>
<find>NoPro</find>
<find>len</find>
<find>no sche</find>
<find>store</find>
<find>WARNING: file</find>
<find>__fetch_schedule_entry_data__</find>
<find>fetch_</find>
<find>entrynum</find>
<find>print(self.p</find>
<find>noPro</find>
</findStrings>
<replaceStrings>
<replace>&quot;</replace>
......@@ -213,18 +229,18 @@
<option value="$PROJECT_DIR$/modules/liquidsoap/simplestmixer.liq" />
<option value="$PROJECT_DIR$/modules/communication/liquidsoap/initthread.py" />
<option value="$PROJECT_DIR$/aura.py" />
<option value="$PROJECT_DIR$/modules/controller/controller.py" />
<option value="$PROJECT_DIR$/libraries/database/database.py" />
<option value="$PROJECT_DIR$/README.md" />
<option value="$PROJECT_DIR$/modules/communication/liquidsoap/client.py" />
<option value="$PROJECT_DIR$/modules/communication/liquidsoap/communicator.py" />
<option value="$PROJECT_DIR$/guru.py" />
<option value="$PROJECT_DIR$/libraries/enum/redischannels.py" />
<option value="$PROJECT_DIR$/modules/communication/redis/adapter.py" />
<option value="$PROJECT_DIR$/modules/tools/padavan.py" />
<option value="$PROJECT_DIR$/libraries/base/calendar.py" />
<option value="$PROJECT_DIR$/libraries/database/broadcasts.py" />
<option value="$PROJECT_DIR$/modules/scheduling/scheduler.py" />
<option value="$PROJECT_DIR$/libraries/enum/redischannels.py" />
<option value="$PROJECT_DIR$/libraries/base/calendar.py" />
<option value="$PROJECT_DIR$/modules/controller/controller.py" />
</list>
</option>
</component>
......@@ -464,7 +480,8 @@
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.16640337" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.46312365" sideWeight="0.5018431" order="13" side_tool="true" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.37744033" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.43275487" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.36876357" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32936078" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Python Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
......@@ -478,7 +495,6 @@
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Execute Anonymous" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.43275487" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Data View" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Salesforce" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="12" side_tool="false" content_ui="tabs" />
......@@ -517,17 +533,10 @@
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<breakpoints>
<line-breakpoint enabled="true" suspend="THREAD" type="python-line">
<url>file://$PROJECT_DIR$/modules/communication/liquidsoap/client.py</url>
<line>2</line>
<option name="timeStamp" value="32" />
</line-breakpoint>
</breakpoints>
<breakpoints-dialog>
<breakpoints-dialog />
</breakpoints-dialog>
<option name="time" value="33" />
<option name="time" value="35" />
</breakpoint-manager>
<watches-manager />
</component>
......@@ -680,6 +689,7 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="51">
<caret line="5" column="53" lean-forward="false" selection-start-line="5" selection-start-column="53" selection-end-line="5" selection-end-column="53" />
<folding />
</state>
</provider>
</entry>
......@@ -704,111 +714,113 @@
<provider editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/modules/communication/liquidsoap/client.py">
<entry file="file://$PROJECT_DIR$/modules/communication/liquidsoap/communicator.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="178">
<caret line="57" column="34" lean-forward="false" selection-start-line="57" selection-start-column="34" selection-end-line="57" selection-end-column="34" />
<state relative-caret-position="2210">
<caret line="143" column="28" lean-forward="false" selection-start-line="143" selection-start-column="28" selection-end-line="143" selection-end-column="28" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/modules/controller/controller.py">
<entry file="file:///usr/local/lib/python3.5/dist-packages/sqlalchemy/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="84" column="51" lean-forward="false" selection-start-line="84" selection-start-column="51" selection-end-line="84" selection-end-column="51" />
<folding>
<element signature="e#43#56#0" expanded="true" />
</folding>
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/modules/communication/redis/adapter.py">
<entry file="file://$PROJECT_DIR$/aura.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="142">
<caret line="158" column="122" lean-forward="true" selection-start-line="158" selection-start-column="122" selection-end-line="158" selection-end-column="122" />
<state relative-caret-position="153">
<caret line="26" column="39" lean-forward="true" selection-start-line="26" selection-start-column="39" selection-end-line="26" selection-end-column="39" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/modules/tools/padavan.py">
<entry file="file://$PROJECT_DIR$/libraries/enum/redischannels.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2295">
<caret line="138" column="41" lean-forward="false" selection-start-line="138" selection-start-column="41" selection-end-line="138" selection-end-column="41" />
<folding>
<element signature="e#0#17#0" expanded="true" />
</folding>
<state relative-caret-position="187">
<caret line="11" column="44" lean-forward="false" selection-start-line="11" selection-start-column="44" selection-end-line="11" selection-end-column="44" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/guru.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="765">
<caret line="54" column="110" lean-forward="false" selection-start-line="54" selection-start-column="89" selection-end-line="54" selection-end-column="110" />
<state relative-caret-position="365">
<caret line="61" column="60" lean-forward="true" selection-start-line="61" selection-start-column="60" selection-end-line="61" selection-end-column="60" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/libraries/database/broadcasts.py">
<entry file="file://$PROJECT_DIR$/modules/communication/redis/adapter.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="170">
<caret line="15" column="9" lean-forward="false" selection-start-line="15" selection-start-column="9" selection-end-line="15" selection-end-column="9" />
<state relative-caret-position="289">
<caret line="132" column="88" lean-forward="false" selection-start-line="132" selection-start-column="88" selection-end-line="132" selection-end-column="88" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/modules/tools/padavan.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="561">
<caret line="44" column="41" lean-forward="true" selection-start-line="44" selection-start-column="41" selection-end-line="44" selection-end-column="41" />
<folding>
<element signature="e#47#79#0" expanded="true" />
<element signature="e#0#17#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/modules/communication/liquidsoap/communicator.py">
<entry file="file://$PROJECT_DIR$/modules/communication/liquidsoap/client.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2210">
<caret line="143" column="28" lean-forward="false" selection-start-line="143" selection-start-column="28" selection-end-line="143" selection-end-column="28" />
<state relative-caret-position="119">
<caret line="7" column="19" lean-forward="true" selection-start-line="7" selection-start-column="19" selection-end-line="7" selection-end-column="19" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/modules/scheduling/scheduler.py">
<entry file="file://$PROJECT_DIR$/libraries/base/calendar.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-3162">
<caret line="388" column="0" lean-forward="true" selection-start-line="388" selection-start-column="0" selection-end-line="388" selection-end-column="0" />
<state relative-caret-position="172">
<caret line="182" column="0" lean-forward="false" selection-start-line="182" selection-start-column="0" selection-end-line="182" selection-end-column="0" />
<folding>
<element signature="e#1046#1059#0" expanded="true" />
<element signature="e#805#818#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file:///usr/local/lib/python3.5/dist-packages/sqlalchemy/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/libraries/enum/redischannels.py">
<entry file="file://$PROJECT_DIR$/libraries/database/broadcasts.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="187">
<caret line="11" column="0" lean-forward="true" selection-start-line="11" selection-start-column="0" selection-end-line="11" selection-end-column="0" />
<folding />
<state relative-caret-position="159">
<caret line="81" column="33" lean-forward="false" selection-start-line="81" selection-start-column="33" selection-end-line="81" selection-end-column="33" />
<folding>
<element signature="e#47#79#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/libraries/base/calendar.py">
<entry file="file://$PROJECT_DIR$/modules/scheduling/scheduler.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="334">
<caret line="327" column="80" lean-forward="false" selection-start-line="327" selection-start-column="80" selection-end-line="327" selection-end-column="80" />
<state relative-caret-position="133">
<caret line="223" column="51" lean-forward="false" selection-start-line="223" selection-start-column="51" selection-end-line="223" selection-end-column="51" />
<folding>
<element signature="e#805#818#0" expanded="true" />
<element signature="e#1046#1059#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/aura.py">
<entry file="file://$PROJECT_DIR$/modules/controller/controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="272">
<caret line="24" column="32" lean-forward="false" selection-start-line="24" selection-start-column="32" selection-end-line="24" selection-end-column="32" />
<folding />
<state relative-caret-position="150">
<caret line="95" column="26" lean-forward="true" selection-start-line="95" selection-start-column="26" selection-end-line="95" selection-end-column="26" />
<folding>
<element signature="e#43#56#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
......
......@@ -52,7 +52,7 @@ class Guru:
# help="Add new source to LiquidSoap mixer [Experimental]")
# playlist manipulation
parser.add_argument("-mpe", "--swap-playlist-entries", action="store", dest="swap_playlist_entries", default=0, metavar=("FROM", "TO"), nargs=2,
parser.add_argument("-spe", "--swap-playlist-entries", action="store", dest="swap_playlist_entries", default=0, metavar=("FROM", "TO"), nargs=2,
help="Swaps two Playlistentries")
parser.add_argument("-dpe", "--delete-playlist-entry", action="store", dest="delete_playlist_entry", default=0, metavar="INDEX",
help="Delete Playlistentry at INDEX")
......
......@@ -24,6 +24,7 @@ import sys
import threading
import simplejson
import queue
import traceback
from datetime import datetime, timedelta
......@@ -136,7 +137,6 @@ class AuraCalendarService(threading.Thread):
# store playlists to play
entrynum = 0
print(schedule)
for entry in schedule["playlist"]["entries"]:
self.store_schedule_entry(schedule, entry, entrynum)
entrynum = entrynum + 1
......@@ -144,13 +144,12 @@ class AuraCalendarService(threading.Thread):
# release the mutex
self.queue.put("fetching_finished")
print("WARNING: fallback pools/playlists not processed!")
# terminate the thread
return
def store_schedule(self, schedule):
schedule_db = Schedule.query.filter(Schedule.schedule_id == schedule['schedule_id']).first()
if not schedule_db:
print("no schedule with given schedule id in database => create new")
schedule_db = Schedule()
......@@ -193,7 +192,8 @@ class AuraCalendarService(threading.Thread):
schedule_entry = ScheduleEntry.select_one(schedule["playlist_id"], entrynum)
if not schedule_entry:
print("no scheduleentry with id " + str(schedule["playlist_id"]) + " and pos " + str(entrynum) + " in database => creating a new one")
if self.debug:
print("no scheduleentry with id " + str(schedule["playlist_id"]) + " and pos " + str(entrynum) + " in database => creating a new one")
schedule_entry = ScheduleEntry()
schedule_entry.playlist_id = schedule["playlist_id"]
......@@ -216,9 +216,6 @@ class AuraCalendarService(threading.Thread):
print("Storing entries... playlist_id: " + str(schedule["playlist_id"]) + " schedule_id: " + str(
schedule["schedule_id"]) + " num: " + str(entrynum))
from pprint import pprint
pprint(vars(schedule_entry))
schedule_entry.store(True)
return schedule_entry
......@@ -264,8 +261,7 @@ class AuraCalendarService(threading.Thread):
url = self.get_url()
data = self.get_data()
except IOError as e:
self.messenger.send("Could not connect to service " + self.dataURL, '1101', 'error', 'fetchCalenderData',
self.__get_error_data__(), 'getcalendar')
self.messenger.send("Could not connect to service " + self.dataURL, '1101', 'error', 'fetchCalenderData', self.__get_error_data__(), 'getcalendar')
try:
for schedule in self.fetched_schedule_data:
......@@ -284,9 +280,7 @@ class AuraCalendarService(threading.Thread):
print("station_fallback: "+str(schedule["station_fallback"]))
except Exception as e:
import traceback
traceback.print_exc()
print(e)
print("houston we have a problem")
# ------------------------------------------------------------------------------------------ #
......@@ -325,7 +319,8 @@ class AuraCalendarService(threading.Thread):
for entry in schedule_entries["entries"]:
if entry["source"].startswith("file"):
if not os.path.isfile(entry["source"]):
print("WARNING: File ", entry["source"], " does not exist!")
print("WARNING: File", entry["source"], "does not exist!")
# elif entry["source"].startswith("pool"):
fetched_schedule_entries.append(schedule_entries)
......
......@@ -12,10 +12,25 @@ from libraries.database.database import db
class Model:
def store(self, commit=False):
curr_db_sessions = db.session.object_session(self)
curr_db_sessions.add(self)
#db.session.add(self)
# update or insert
if curr_db_sessions is None:
# insert
db.session.add(self)
if commit:
db.session.commit()
else:
# update
curr_db_sessions.add(self)
if commit:
curr_db_sessions.commit()
def delete(self, commit=False):
curr_db_sessions = db.session.object_session(self)
curr_db_sessions.delete(self)
if commit:
self.commit()
curr_db_sessions.commit()
@staticmethod
def commit():
......@@ -56,6 +71,11 @@ class ScheduleEntryModel(Model):
# ------------------------------------------------------------------------------------------ #
@staticmethod
def select_all():
# when deleting all entries, and fetching new programmes, the entries are stored and commited in the code.
# but sqlalchemy thinks somehow it is not commit and returns an empty set
db.session.commit()
# fetching all
all_entries = ScheduleEntry.query.filter().all()
cnt = 0
......
......@@ -9,3 +9,4 @@ class Channels(Enum):
GAP_REPLY = "get_act_programme_reply"
PMQ_REPLY = "print_message_queue_reply"
MPE_REPLY = "move_playlist_entry_reply"
DPE_REPLY = "delete_playlist_entry_reply"
\ No newline at end of file
......@@ -140,6 +140,11 @@ class ServerRedisAdapter(threading.Thread, RedisMessenger):
param = {"from_index": extracted[0], "to_index": extracted[1]}
self.execute(Channels.MPE_REPLY.value, self.scheduler.swap_playlist_entries, param)
elif item["data"].find("delete_playlist_entry") >= 0:
entrynum = item["data"].split()[1]
print("entry to del: ", entrynum)
self.execute(Channels.DPE_REPLY.value, self.scheduler.delete_playlist_entry, entrynum)
else:
raise RedisConnectionException("ServerRedisAdapter Cannot understand command: " + item["data"])
......@@ -153,7 +158,7 @@ class ServerRedisAdapter(threading.Thread, RedisMessenger):
if reply is None:
reply = ""
# sometimes the sender is faster than the receiver and with redis messages would be lost
# sometimes the sender is faster than the receiver. redis messages would be lost
time.sleep(0.1)
print(TerminalColors.OK_ORANGE.value + "replying " + reply + " on channel " + channel + TerminalColors.ENDC.value)
......
......@@ -81,26 +81,23 @@ class AuraController:
response = queue.get()
if response == "fetching_finished":
acs.get_calendar_data()
# acs.get_calendar_data()
self.scheduler.load_programme_from_db()
return self.scheduler.get_act_programme()
return self.scheduler.get_act_programme_as_string()
else:
print("Got an unknown response from AuraCalendarService: "+response)
# ------------------------------------------------------------------------------------------ #
def get_act_programme(self):
try:
programme = self.scheduler.get_act_programme()
programme = self.scheduler.get_act_programme_as_string()
except NoProgrammeLoadedException as e:
if self.debug:
print("WARNING: no programme in memory. i have to reload it!")
# refetch the programme from pv and importer
self.fetch_new_programme()
# is the recursion here really needed, or an additional error source?
return self.get_act_programme()
return self.fetch_new_programme()
except Exception as e:
traceback.print_exc()
......
......@@ -137,7 +137,6 @@ class AuraScheduler():
# ------------------------------------------------------------------------------------------ #
def init_database(self):
import sys
# check if tables do exist. if not create them
try:
ScheduleEntry.select_all()
......@@ -239,7 +238,7 @@ class AuraScheduler():
# when do we have to start?
diff = entry.entry_start_unix - now_unix
diff = diff/100 # testing purpose
# diff = diff/100 # testing purpose
# create the activation threads and run them after <diff> seconds
if entry.source.startswith("linein"):
......@@ -262,6 +261,11 @@ class AuraScheduler():
if not silent:
print(entry.__dict__)
# print("SCHEDULER Len of PROGRAMME")
# print(len(self.programme))
# if len(self.programme) == 0:
# self.programme = None
# ------------------------------------------------------------------------------------------ #
def add_or_update_timer(self, entry, diff, func, type):
# check if something is planned at given time
......@@ -314,8 +318,9 @@ class AuraScheduler():
return False
# ------------------------------------------------------------------------------------------ #
def get_act_programme(self):
def get_act_programme_as_string(self):
programme_as_string = ""
if self.programme is None:
raise NoProgrammeLoadedException("")
......@@ -366,7 +371,24 @@ class AuraScheduler():
to_entry.store(True)
# and return the programme with swapped entries
return self.get_act_programme()
return self.get_act_programme_as_string()
# ------------------------------------------------------------------------------------------ #
def delete_playlist_entry(self, index):
found = False
for p in self.programme:
if p.programme_index == int(index):
p.delete(True)
self.load_programme_from_db()
found = True
break
if not found:
print("WARNING: Nothing to delete")
return self.get_act_programme_as_string()
# ------------------------------------------------------------------------------------------ #
def __load_config__(self):
......
......@@ -116,7 +116,7 @@ class Padavan:
self.print_programme(actprogramme)
def print_programme(self, programme):
idx = 0
# idx = 0
for entry in programme:
self.stringreply += "idx: " + str(entry["programme_index"]) + \
" --- schedule id #" + str(entry["schedule_id"]) + \
......@@ -124,7 +124,7 @@ class Padavan:
" starting @ " + entry["entry_start"] + \
" ending @ " + entry["entry_end"] + \
" is playing " + entry["source"] + "\n"
idx = idx + 1
# idx = idx + 1
def init_player(self):
self.stringreply = self.send_and_wait_redis("aura", "init_player", Channels.IP_REPLY)
......@@ -139,7 +139,9 @@ class Padavan:
self.print_programme(actprogramme)
def delete_playlist_entry(self, index):
return ""
json_reply = self.send_and_wait_redis("aura", "delete_playlist_entry " + str(index), Channels.DPE_REPLY)
actprogramme = simplejson.loads(json_reply)
self.print_programme(actprogramme)
def add_playlist_entry(self, from_index, to_index):
return ""
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment