mirror of
https://github.com/chibicitiberiu/ytsm.git
synced 2024-02-24 05:43:31 +00:00
Fixed docker image. Fixed issue with environment variable interpolation (on Linux, it is case sensitive, so converting to lowercase was bad. Cleaned up directory structure.
This commit is contained in:
parent
ba965515e9
commit
1fafd859b7
6
.directory
Normal file
6
.directory
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[Dolphin]
|
||||||
|
Timestamp=2018,11,1,23,18,12
|
||||||
|
Version=4
|
||||||
|
|
||||||
|
[Settings]
|
||||||
|
HiddenFilesShown=true
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -115,7 +115,7 @@ venv.bak/
|
|||||||
.dmypy.json
|
.dmypy.json
|
||||||
dmypy.json
|
dmypy.json
|
||||||
|
|
||||||
media/
|
data/
|
||||||
|
|
||||||
.vscode/*
|
.vscode/*
|
||||||
!.vscode/settings.json
|
!.vscode/settings.json
|
||||||
|
@ -3,6 +3,17 @@
|
|||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="245751b6-c863-4572-8723-8499964fe105" name="Default Changelist" comment="">
|
<list default="true" id="245751b6-c863-4572-8723-8499964fe105" name="Default Changelist" comment="">
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Dockerfile" beforeDir="false" afterPath="$PROJECT_DIR$/Dockerfile" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/app/YtManager/settings.py" beforeDir="false" afterPath="$PROJECT_DIR$/app/YtManager/settings.py" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/app/YtManagerApp/utils/extended_interpolation_with_env.py" beforeDir="false" afterPath="$PROJECT_DIR$/app/YtManagerApp/utils/extended_interpolation_with_env.py" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/app/config" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/app/init.sh" beforeDir="false" afterPath="$PROJECT_DIR$/docker/init.sh" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/config/config.ini" beforeDir="false" afterPath="$PROJECT_DIR$/config/config.ini" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/config/defaults.ini" beforeDir="false" afterPath="$PROJECT_DIR$/config/defaults.ini" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/docker-compose.yml" beforeDir="false" afterPath="$PROJECT_DIR$/docker-compose.yml" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/docker/requirements.txt" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/nginx/nginx.conf" beforeDir="false" afterPath="$PROJECT_DIR$/docker/nginx/nginx.conf" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/sqlite3.env.env" beforeDir="false" />
|
||||||
</list>
|
</list>
|
||||||
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
@ -137,24 +148,31 @@
|
|||||||
<session id="-187512657">
|
<session id="-187512657">
|
||||||
<usages-collector id="statistics.lifecycle.project">
|
<usages-collector id="statistics.lifecycle.project">
|
||||||
<counts>
|
<counts>
|
||||||
<entry key="project.closed" value="1" />
|
<entry key="project.closed" value="2" />
|
||||||
<entry key="project.open.time.10" value="1" />
|
<entry key="project.open.time.10" value="1" />
|
||||||
<entry key="project.open.time.13" value="1" />
|
<entry key="project.open.time.13" value="1" />
|
||||||
<entry key="project.open.time.6" value="1" />
|
<entry key="project.open.time.6" value="1" />
|
||||||
|
<entry key="project.open.time.7" value="1" />
|
||||||
<entry key="project.open.time.9" value="1" />
|
<entry key="project.open.time.9" value="1" />
|
||||||
<entry key="project.opened" value="4" />
|
<entry key="project.opened" value="5" />
|
||||||
</counts>
|
</counts>
|
||||||
</usages-collector>
|
</usages-collector>
|
||||||
<usages-collector id="statistics.file.extensions.open">
|
<usages-collector id="statistics.file.extensions.open">
|
||||||
<counts>
|
<counts>
|
||||||
|
<entry key="Dockerfile" value="2" />
|
||||||
<entry key="auth_group" value="1" />
|
<entry key="auth_group" value="1" />
|
||||||
|
<entry key="conf" value="1" />
|
||||||
|
<entry key="env" value="4" />
|
||||||
<entry key="gitignore" value="1" />
|
<entry key="gitignore" value="1" />
|
||||||
<entry key="html" value="4" />
|
<entry key="html" value="4" />
|
||||||
<entry key="ini" value="7" />
|
<entry key="ini" value="18" />
|
||||||
<entry key="log" value="1" />
|
<entry key="log" value="2" />
|
||||||
<entry key="md" value="8" />
|
<entry key="md" value="8" />
|
||||||
<entry key="py" value="58" />
|
<entry key="py" value="66" />
|
||||||
<entry key="scss" value="2" />
|
<entry key="scss" value="2" />
|
||||||
|
<entry key="sh" value="6" />
|
||||||
|
<entry key="txt" value="5" />
|
||||||
|
<entry key="yml" value="4" />
|
||||||
<entry key="ytmanagerapp_channel" value="1" />
|
<entry key="ytmanagerapp_channel" value="1" />
|
||||||
<entry key="ytmanagerapp_subscription" value="2" />
|
<entry key="ytmanagerapp_subscription" value="2" />
|
||||||
<entry key="ytmanagerapp_video" value="3" />
|
<entry key="ytmanagerapp_video" value="3" />
|
||||||
@ -162,45 +180,63 @@
|
|||||||
</usages-collector>
|
</usages-collector>
|
||||||
<usages-collector id="statistics.file.types.open">
|
<usages-collector id="statistics.file.types.open">
|
||||||
<counts>
|
<counts>
|
||||||
|
<entry key="Bash" value="6" />
|
||||||
<entry key="Database Element" value="7" />
|
<entry key="Database Element" value="7" />
|
||||||
|
<entry key="Dockerfile" value="2" />
|
||||||
<entry key="HTML" value="4" />
|
<entry key="HTML" value="4" />
|
||||||
<entry key="Ini" value="7" />
|
<entry key="Ini" value="18" />
|
||||||
|
<entry key="Log" value="1" />
|
||||||
<entry key="Markdown" value="8" />
|
<entry key="Markdown" value="8" />
|
||||||
<entry key="PLAIN_TEXT" value="2" />
|
<entry key="PLAIN_TEXT" value="12" />
|
||||||
<entry key="Python" value="58" />
|
<entry key="Python" value="66" />
|
||||||
<entry key="SCSS" value="2" />
|
<entry key="SCSS" value="2" />
|
||||||
|
<entry key="YAML" value="4" />
|
||||||
</counts>
|
</counts>
|
||||||
</usages-collector>
|
</usages-collector>
|
||||||
<usages-collector id="statistics.file.extensions.edit">
|
<usages-collector id="statistics.file.extensions.edit">
|
||||||
<counts>
|
<counts>
|
||||||
<entry key="Django Console" value="419" />
|
<entry key="Django Console" value="466" />
|
||||||
|
<entry key="Dockerfile" value="266" />
|
||||||
<entry key="html" value="12" />
|
<entry key="html" value="12" />
|
||||||
<entry key="ini" value="2" />
|
<entry key="ini" value="1482" />
|
||||||
<entry key="md" value="4881" />
|
<entry key="md" value="4881" />
|
||||||
<entry key="py" value="5777" />
|
<entry key="py" value="6482" />
|
||||||
<entry key="py@youtube-channel-manager" value="48" />
|
<entry key="py@youtube-channel-manager" value="48" />
|
||||||
|
<entry key="sh" value="52" />
|
||||||
|
<entry key="yml" value="129" />
|
||||||
</counts>
|
</counts>
|
||||||
</usages-collector>
|
</usages-collector>
|
||||||
<usages-collector id="statistics.file.types.edit">
|
<usages-collector id="statistics.file.types.edit">
|
||||||
<counts>
|
<counts>
|
||||||
<entry key="Bash" value="4" />
|
<entry key="Bash" value="56" />
|
||||||
<entry key="CommandLine" value="30" />
|
<entry key="CommandLine" value="30" />
|
||||||
|
<entry key="Dockerfile" value="266" />
|
||||||
<entry key="HTML" value="12" />
|
<entry key="HTML" value="12" />
|
||||||
<entry key="Ini" value="2" />
|
<entry key="Ini" value="1482" />
|
||||||
<entry key="Markdown" value="4877" />
|
<entry key="Markdown" value="4877" />
|
||||||
<entry key="PLAIN_TEXT" value="18" />
|
<entry key="PLAIN_TEXT" value="18" />
|
||||||
<entry key="Python" value="6196" />
|
<entry key="Python" value="6948" />
|
||||||
|
<entry key="YAML" value="129" />
|
||||||
</counts>
|
</counts>
|
||||||
</usages-collector>
|
</usages-collector>
|
||||||
</session>
|
</session>
|
||||||
</component>
|
</component>
|
||||||
<component name="FileEditorManager">
|
<component name="FileEditorManager">
|
||||||
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
|
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
|
||||||
|
<file pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/docker-compose.yml">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="315">
|
||||||
|
<caret line="21" lean-forward="true" selection-start-line="21" selection-end-line="21" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
<file pinned="false" current-in-tab="true">
|
<file pinned="false" current-in-tab="true">
|
||||||
<entry file="file://$PROJECT_DIR$/app/YtManager/settings.py">
|
<entry file="file://$PROJECT_DIR$/app/YtManager/settings.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="217">
|
<state relative-caret-position="540">
|
||||||
<caret line="33" column="1" lean-forward="true" selection-start-line="33" selection-start-column="1" selection-end-line="33" selection-end-column="1" />
|
<caret line="177" lean-forward="true" selection-start-line="177" selection-end-line="177" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#314#323#0" expanded="true" />
|
<element signature="e#314#323#0" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
@ -208,6 +244,33 @@
|
|||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
|
<file pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/config/config.ini">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="105">
|
||||||
|
<caret line="7" lean-forward="true" selection-start-line="7" selection-end-line="7" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/docker/init.sh">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="60">
|
||||||
|
<caret line="4" lean-forward="true" selection-start-line="4" selection-end-line="4" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file:///usr/lib/python3.6/configparser.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="242">
|
||||||
|
<caret line="1150" column="8" selection-start-line="1150" selection-start-column="8" selection-end-line="1150" selection-end-column="8" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
</leaf>
|
</leaf>
|
||||||
</component>
|
</component>
|
||||||
<component name="FileTemplateManagerImpl">
|
<component name="FileTemplateManagerImpl">
|
||||||
@ -223,7 +286,6 @@
|
|||||||
</component>
|
</component>
|
||||||
<component name="FindInProjectRecents">
|
<component name="FindInProjectRecents">
|
||||||
<findStrings>
|
<findStrings>
|
||||||
<find>ajax_index_get_videos</find>
|
|
||||||
<find>ajax_index_get_tree</find>
|
<find>ajax_index_get_tree</find>
|
||||||
<find>self.helper</find>
|
<find>self.helper</find>
|
||||||
<find>csrf</find>
|
<find>csrf</find>
|
||||||
@ -253,6 +315,7 @@
|
|||||||
<find>DeleteS</find>
|
<find>DeleteS</find>
|
||||||
<find>dj_settings</find>
|
<find>dj_settings</find>
|
||||||
<find>is_true</find>
|
<find>is_true</find>
|
||||||
|
<find>_resolve_section_option</find>
|
||||||
</findStrings>
|
</findStrings>
|
||||||
<replaceStrings>
|
<replaceStrings>
|
||||||
<replace>loading</replace>
|
<replace>loading</replace>
|
||||||
@ -276,13 +339,6 @@
|
|||||||
<component name="IdeDocumentHistory">
|
<component name="IdeDocumentHistory">
|
||||||
<option name="CHANGED_PATHS">
|
<option name="CHANGED_PATHS">
|
||||||
<list>
|
<list>
|
||||||
<option value="$PROJECT_DIR$/YtManagerApp/model/folder.py" />
|
|
||||||
<option value="$PROJECT_DIR$/YtManagerApp/model/subscription.py" />
|
|
||||||
<option value="$PROJECT_DIR$/YtManagerApp/model/user_settings.py" />
|
|
||||||
<option value="$PROJECT_DIR$/YtManagerApp/model/__init__.py" />
|
|
||||||
<option value="$PROJECT_DIR$/YtManagerApp/model/channel.py" />
|
|
||||||
<option value="$PROJECT_DIR$/YtManagerApp/templates/YtManagerApp/controls/subscription_create_modal.html" />
|
|
||||||
<option value="$PROJECT_DIR$/YtManagerApp/management/management.py" />
|
|
||||||
<option value="$PROJECT_DIR$/YtManagerApp/templates/YtManagerApp/controls/modal.html" />
|
<option value="$PROJECT_DIR$/YtManagerApp/templates/YtManagerApp/controls/modal.html" />
|
||||||
<option value="$PROJECT_DIR$/YtManagerApp/views/controls/modal.py" />
|
<option value="$PROJECT_DIR$/YtManagerApp/views/controls/modal.py" />
|
||||||
<option value="$PROJECT_DIR$/YtManagerApp/templates/YtManagerApp/controls/subscription_update_modal.html" />
|
<option value="$PROJECT_DIR$/YtManagerApp/templates/YtManagerApp/controls/subscription_update_modal.html" />
|
||||||
@ -305,7 +361,6 @@
|
|||||||
<option value="$PROJECT_DIR$/YtManagerApp/urls.py" />
|
<option value="$PROJECT_DIR$/YtManagerApp/urls.py" />
|
||||||
<option value="$PROJECT_DIR$/YtManagerApp/utils/customconfigparser.py" />
|
<option value="$PROJECT_DIR$/YtManagerApp/utils/customconfigparser.py" />
|
||||||
<option value="$PROJECT_DIR$/YtManagerApp/utils/extended_interpolation_with_env.py" />
|
<option value="$PROJECT_DIR$/YtManagerApp/utils/extended_interpolation_with_env.py" />
|
||||||
<option value="$PROJECT_DIR$/config/defaults.ini" />
|
|
||||||
<option value="$PROJECT_DIR$/YtManagerApp/appconfig.py" />
|
<option value="$PROJECT_DIR$/YtManagerApp/appconfig.py" />
|
||||||
<option value="$PROJECT_DIR$/YtManagerApp/management/downloader.py" />
|
<option value="$PROJECT_DIR$/YtManagerApp/management/downloader.py" />
|
||||||
<option value="$PROJECT_DIR$/YtManagerApp/management/jobs/delete_video.py" />
|
<option value="$PROJECT_DIR$/YtManagerApp/management/jobs/delete_video.py" />
|
||||||
@ -316,7 +371,6 @@
|
|||||||
<option value="$PROJECT_DIR$/YtManagerApp/models.py" />
|
<option value="$PROJECT_DIR$/YtManagerApp/models.py" />
|
||||||
<option value="$PROJECT_DIR$/YtManagerApp/views/index.py" />
|
<option value="$PROJECT_DIR$/YtManagerApp/views/index.py" />
|
||||||
<option value="$PROJECT_DIR$/YtManagerApp/management/jobs/download_video.py" />
|
<option value="$PROJECT_DIR$/YtManagerApp/management/jobs/download_video.py" />
|
||||||
<option value="$PROJECT_DIR$/config/config.ini" />
|
|
||||||
<option value="$PROJECT_DIR$/YtManagerApp/templates/YtManagerApp/master_default.html" />
|
<option value="$PROJECT_DIR$/YtManagerApp/templates/YtManagerApp/master_default.html" />
|
||||||
<option value="$PROJECT_DIR$/YtManagerApp/templates/YtManagerApp/index.html" />
|
<option value="$PROJECT_DIR$/YtManagerApp/templates/YtManagerApp/index.html" />
|
||||||
<option value="$PROJECT_DIR$/YtManager/settings.py" />
|
<option value="$PROJECT_DIR$/YtManager/settings.py" />
|
||||||
@ -326,6 +380,15 @@
|
|||||||
<option value="$PROJECT_DIR$/readme.md" />
|
<option value="$PROJECT_DIR$/readme.md" />
|
||||||
<option value="$PROJECT_DIR$/README.md" />
|
<option value="$PROJECT_DIR$/README.md" />
|
||||||
<option value="$PROJECT_DIR$/app/YtManagerApp/appconfig.py" />
|
<option value="$PROJECT_DIR$/app/YtManagerApp/appconfig.py" />
|
||||||
|
<option value="$PROJECT_DIR$/app/init.sh" />
|
||||||
|
<option value="$PROJECT_DIR$/app/YtManagerApp/urls.py" />
|
||||||
|
<option value="$PROJECT_DIR$/config/defaults.ini" />
|
||||||
|
<option value="$PROJECT_DIR$/docker/config.ini" />
|
||||||
|
<option value="$PROJECT_DIR$/Dockerfile" />
|
||||||
|
<option value="$PROJECT_DIR$/docker/init.sh" />
|
||||||
|
<option value="$PROJECT_DIR$/docker-compose.yml" />
|
||||||
|
<option value="$PROJECT_DIR$/config/config.ini" />
|
||||||
|
<option value="$PROJECT_DIR$/app/YtManagerApp/utils/extended_interpolation_with_env.py" />
|
||||||
<option value="$PROJECT_DIR$/app/YtManager/settings.py" />
|
<option value="$PROJECT_DIR$/app/YtManager/settings.py" />
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
@ -336,11 +399,11 @@
|
|||||||
<detection-done>true</detection-done>
|
<detection-done>true</detection-done>
|
||||||
<sorting>DEFINITION_ORDER</sorting>
|
<sorting>DEFINITION_ORDER</sorting>
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectFrameBounds" extendedState="7">
|
<component name="ProjectFrameBounds" extendedState="6">
|
||||||
<option name="x" value="803" />
|
<option name="x" value="683" />
|
||||||
<option name="y" value="615" />
|
<option name="y" value="121" />
|
||||||
<option name="width" value="643" />
|
<option name="width" value="1127" />
|
||||||
<option name="height" value="321" />
|
<option name="height" value="800" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectInspectionProfilesVisibleTreeState">
|
<component name="ProjectInspectionProfilesVisibleTreeState">
|
||||||
<entry key="Project Default">
|
<entry key="Project Default">
|
||||||
@ -412,8 +475,25 @@
|
|||||||
<item name="youtube-channel-manager" type="b2602c69:ProjectViewProjectNode" />
|
<item name="youtube-channel-manager" type="b2602c69:ProjectViewProjectNode" />
|
||||||
<item name="youtube-channel-manager" type="462c0819:PsiDirectoryNode" />
|
<item name="youtube-channel-manager" type="462c0819:PsiDirectoryNode" />
|
||||||
<item name="app" type="462c0819:PsiDirectoryNode" />
|
<item name="app" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="YtManagerApp" type="462c0819:PsiDirectoryNode" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="youtube-channel-manager" type="b2602c69:ProjectViewProjectNode" />
|
||||||
|
<item name="youtube-channel-manager" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="app" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="YtManagerApp" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="utils" type="462c0819:PsiDirectoryNode" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="youtube-channel-manager" type="b2602c69:ProjectViewProjectNode" />
|
||||||
|
<item name="youtube-channel-manager" type="462c0819:PsiDirectoryNode" />
|
||||||
<item name="config" type="462c0819:PsiDirectoryNode" />
|
<item name="config" type="462c0819:PsiDirectoryNode" />
|
||||||
</path>
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="youtube-channel-manager" type="b2602c69:ProjectViewProjectNode" />
|
||||||
|
<item name="youtube-channel-manager" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="docker" type="462c0819:PsiDirectoryNode" />
|
||||||
|
</path>
|
||||||
</expand>
|
</expand>
|
||||||
<select />
|
<select />
|
||||||
</subPane>
|
</subPane>
|
||||||
@ -432,19 +512,19 @@
|
|||||||
<property name="settings.editor.selected.configurable" value="com.jetbrains.django.DjangoModulesConfigurable" />
|
<property name="settings.editor.selected.configurable" value="com.jetbrains.django.DjangoModulesConfigurable" />
|
||||||
</component>
|
</component>
|
||||||
<component name="RecentsManager">
|
<component name="RecentsManager">
|
||||||
|
<key name="MoveFile.RECENT_KEYS">
|
||||||
|
<recent name="$PROJECT_DIR$/docker/nginx" />
|
||||||
|
<recent name="$PROJECT_DIR$/docker" />
|
||||||
|
<recent name="$PROJECT_DIR$" />
|
||||||
|
<recent name="D:\Dev\youtube-channel-manager\YtManagerApp\templates\YtManagerApp\js" />
|
||||||
|
<recent name="D:\Dev\youtube-channel-manager\YtManagerApp\views\controls" />
|
||||||
|
</key>
|
||||||
<key name="CopyFile.RECENT_KEYS">
|
<key name="CopyFile.RECENT_KEYS">
|
||||||
|
<recent name="$PROJECT_DIR$/docker" />
|
||||||
<recent name="$PROJECT_DIR$/YtManagerApp/import" />
|
<recent name="$PROJECT_DIR$/YtManagerApp/import" />
|
||||||
<recent name="D:\Dev\youtube-channel-manager\YtManagerApp\templates\YtManagerApp" />
|
<recent name="D:\Dev\youtube-channel-manager\YtManagerApp\templates\YtManagerApp" />
|
||||||
<recent name="D:\Dev\youtube-channel-manager\YtManagerApp\management\jobs" />
|
<recent name="D:\Dev\youtube-channel-manager\YtManagerApp\management\jobs" />
|
||||||
<recent name="D:\Dev\youtube-channel-manager\YtManagerApp\templates\YtManagerApp\controls" />
|
<recent name="D:\Dev\youtube-channel-manager\YtManagerApp\templates\YtManagerApp\controls" />
|
||||||
<recent name="D:\Dev\youtube-channel-manager\YtManagerApp\templates\registration" />
|
|
||||||
</key>
|
|
||||||
<key name="MoveFile.RECENT_KEYS">
|
|
||||||
<recent name="$PROJECT_DIR$" />
|
|
||||||
<recent name="D:\Dev\youtube-channel-manager\YtManagerApp\templates\YtManagerApp\js" />
|
|
||||||
<recent name="D:\Dev\youtube-channel-manager\YtManagerApp\views\controls" />
|
|
||||||
<recent name="D:\Dev\youtube-channel-manager\YtManagerApp\views" />
|
|
||||||
<recent name="D:\Dev\youtube-channel-manager\YtManagerApp\templates\YtManagerApp" />
|
|
||||||
</key>
|
</key>
|
||||||
</component>
|
</component>
|
||||||
<component name="RunDashboard">
|
<component name="RunDashboard">
|
||||||
@ -590,11 +670,11 @@
|
|||||||
<frame x="0" y="0" width="1920" height="1048" extended-state="6" />
|
<frame x="0" y="0" width="1920" height="1048" extended-state="6" />
|
||||||
<editor active="true" />
|
<editor active="true" />
|
||||||
<layout>
|
<layout>
|
||||||
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.17857143" />
|
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.18017058" />
|
||||||
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
|
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
|
||||||
<window_info id="Favorites" order="2" side_tool="true" />
|
<window_info id="Favorites" order="2" side_tool="true" />
|
||||||
<window_info anchor="bottom" id="Message" order="0" />
|
<window_info anchor="bottom" id="Message" order="0" />
|
||||||
<window_info anchor="bottom" id="Find" order="1" sideWeight="0.49520257" weight="0.38152173" />
|
<window_info anchor="bottom" id="Find" order="1" sideWeight="0.4946695" weight="0.38152173" />
|
||||||
<window_info anchor="bottom" id="Run" order="2" sideWeight="0.5191898" weight="0.32717392" />
|
<window_info anchor="bottom" id="Run" order="2" sideWeight="0.5191898" weight="0.32717392" />
|
||||||
<window_info anchor="bottom" id="Cvs" order="3" weight="0.25" />
|
<window_info anchor="bottom" id="Cvs" order="3" weight="0.25" />
|
||||||
<window_info anchor="bottom" id="Inspection" order="4" weight="0.4" />
|
<window_info anchor="bottom" id="Inspection" order="4" weight="0.4" />
|
||||||
@ -603,10 +683,10 @@
|
|||||||
<window_info anchor="bottom" id="manage.py@youtube-channel-manager" order="7" sideWeight="0.49520257" weight="0.49347827" />
|
<window_info anchor="bottom" id="manage.py@youtube-channel-manager" order="7" sideWeight="0.49520257" weight="0.49347827" />
|
||||||
<window_info anchor="bottom" id="Docker" order="8" show_stripe_button="false" />
|
<window_info anchor="bottom" id="Docker" order="8" show_stripe_button="false" />
|
||||||
<window_info anchor="bottom" id="Database Changes" order="9" sideWeight="0.49946696" weight="0.32826087" />
|
<window_info anchor="bottom" id="Database Changes" order="9" sideWeight="0.49946696" weight="0.32826087" />
|
||||||
<window_info anchor="bottom" id="Event Log" order="10" sideWeight="0.48081023" side_tool="true" visible="true" weight="0.32717392" />
|
<window_info anchor="bottom" id="Event Log" order="10" sideWeight="0.5053305" side_tool="true" visible="true" weight="0.1521739" />
|
||||||
<window_info anchor="bottom" id="Version Control" order="11" sideWeight="0.4978678" weight="0.15326087" />
|
<window_info anchor="bottom" id="Version Control" order="11" sideWeight="0.4978678" weight="0.15326087" />
|
||||||
<window_info anchor="bottom" id="Terminal" order="12" sideWeight="0.49520257" weight="0.3576087" />
|
<window_info anchor="bottom" id="Terminal" order="12" sideWeight="0.49520257" weight="0.3576087" />
|
||||||
<window_info anchor="bottom" id="Python Console" order="13" sideWeight="0.4946695" weight="0.1521739" />
|
<window_info anchor="bottom" id="Python Console" order="13" sideWeight="0.5063966" weight="0.1521739" />
|
||||||
<window_info anchor="bottom" id="Database Console" order="14" sideWeight="0.49838188" weight="0.21908894" />
|
<window_info anchor="bottom" id="Database Console" order="14" sideWeight="0.49838188" weight="0.21908894" />
|
||||||
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
|
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
|
||||||
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
|
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
|
||||||
@ -647,57 +727,8 @@
|
|||||||
<option name="myLimit" value="2678400000" />
|
<option name="myLimit" value="2678400000" />
|
||||||
</component>
|
</component>
|
||||||
<component name="editorHistoryManager">
|
<component name="editorHistoryManager">
|
||||||
<entry file="file://C:/Python36/Lib/site-packages/apscheduler/executors/base.py" />
|
|
||||||
<entry file="file://C:/Python36/Lib/site-packages/django/db/models/fields/related_descriptors.py" />
|
|
||||||
<entry file="file:///usr/lib/python3/dist-packages/django/db/models/base.py" />
|
|
||||||
<entry file="file://$PROJECT_DIR$/YtManagerApp/appmain.py" />
|
|
||||||
<entry file="file://$PROJECT_DIR$/config/defaults.ini">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="153">
|
|
||||||
<caret line="30" column="20" selection-start-line="30" selection-start-column="20" selection-end-line="30" selection-end-column="20" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/YtManagerApp/views/actions.py" />
|
|
||||||
<entry file="file://$PROJECT_DIR$/YtManagerApp/static/YtManagerApp/import/bootstrap-4.1.3/.gitignore" />
|
|
||||||
<entry file="file:///usr/local/lib/python3.6/dist-packages/apscheduler/schedulers/base.py">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="421">
|
|
||||||
<caret line="440" column="16" selection-start-line="440" selection-start-column="16" selection-end-line="440" selection-end-column="16" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="das://2dac2136-d902-4d27-8789-9371934602fd/schema/main/table/ytmanagerapp_subscription">
|
|
||||||
<provider selected="true" editor-type-id="com.intellij.database.editor.DatabaseTableFileEditorProvider">
|
|
||||||
<state>
|
|
||||||
<filtering enabled="true" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="das://2dac2136-d902-4d27-8789-9371934602fd/schema/main/table/auth_group">
|
|
||||||
<provider selected="true" editor-type-id="com.intellij.database.editor.DatabaseTableFileEditorProvider">
|
|
||||||
<state>
|
|
||||||
<filtering enabled="true" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="das://2dac2136-d902-4d27-8789-9371934602fd/schema/main/table/ytmanagerapp_video">
|
|
||||||
<provider selected="true" editor-type-id="com.intellij.database.editor.DatabaseTableFileEditorProvider">
|
|
||||||
<state>
|
|
||||||
<filtering enabled="true" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/external/pytaw/docs/conf.py" />
|
|
||||||
<entry file="file://$PROJECT_DIR$/YtManagerApp/scheduler.py" />
|
|
||||||
<entry file="file://$PROJECT_DIR$/YtManagerApp/utils/iterutils.py" />
|
<entry file="file://$PROJECT_DIR$/YtManagerApp/utils/iterutils.py" />
|
||||||
<entry file="das://77df9da5-0b97-445e-a895-744ef8257a74/schema/main/table/ytmanagerapp_channel">
|
<entry file="das://77df9da5-0b97-445e-a895-744ef8257a74/schema/main/table/ytmanagerapp_channel" />
|
||||||
<provider selected="true" editor-type-id="com.intellij.database.editor.DatabaseTableFileEditorProvider">
|
|
||||||
<state>
|
|
||||||
<filtering enabled="true" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="das://77df9da5-0b97-445e-a895-744ef8257a74/schema/main/table/ytmanagerapp_subscription">
|
<entry file="das://77df9da5-0b97-445e-a895-744ef8257a74/schema/main/table/ytmanagerapp_subscription">
|
||||||
<provider selected="true" editor-type-id="com.intellij.database.editor.DatabaseTableFileEditorProvider">
|
<provider selected="true" editor-type-id="com.intellij.database.editor.DatabaseTableFileEditorProvider">
|
||||||
<state>
|
<state>
|
||||||
@ -733,13 +764,6 @@
|
|||||||
<entry file="file://$PROJECT_DIR$/YtManagerApp/static/YtManagerApp/css/login.scss" />
|
<entry file="file://$PROJECT_DIR$/YtManagerApp/static/YtManagerApp/css/login.scss" />
|
||||||
<entry file="file://$PROJECT_DIR$/YtManagerApp/static/YtManagerApp/css/style.scss" />
|
<entry file="file://$PROJECT_DIR$/YtManagerApp/static/YtManagerApp/css/style.scss" />
|
||||||
<entry file="file://$PROJECT_DIR$/YtManager/wsgi.py" />
|
<entry file="file://$PROJECT_DIR$/YtManager/wsgi.py" />
|
||||||
<entry file="file://$PROJECT_DIR$/config/config.ini">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="60">
|
|
||||||
<caret line="4" column="14" selection-start-line="4" selection-start-column="1" selection-end-line="4" selection-end-column="14" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/YtManagerApp/templates/YtManagerApp/index.html" />
|
<entry file="file://$PROJECT_DIR$/YtManagerApp/templates/YtManagerApp/index.html" />
|
||||||
<entry file="file://$PROJECT_DIR$/YtManagerApp/templates/YtManagerApp/master_default.html" />
|
<entry file="file://$PROJECT_DIR$/YtManagerApp/templates/YtManagerApp/master_default.html" />
|
||||||
<entry file="file://$PROJECT_DIR$/YtManagerApp/templates/YtManagerApp/controls/subscription_delete_modal.html" />
|
<entry file="file://$PROJECT_DIR$/YtManagerApp/templates/YtManagerApp/controls/subscription_delete_modal.html" />
|
||||||
@ -799,35 +823,108 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/app/data/log.log">
|
<entry file="file://$PROJECT_DIR$/app/data/log.log" />
|
||||||
<provider editor-type-id="text-editor">
|
<entry file="file://$PROJECT_DIR$/app/config/config.ini" />
|
||||||
<state relative-caret-position="405">
|
|
||||||
<caret line="27" lean-forward="true" selection-start-line="27" selection-end-line="27" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
<provider selected="true" editor-type-id="LogFileEditorProvider" />
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/config/config.ini">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="315">
|
|
||||||
<caret line="21" column="25" lean-forward="true" selection-start-line="21" selection-start-column="25" selection-end-line="21" selection-end-column="25" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/YtManagerApp/appconfig.py">
|
<entry file="file://$PROJECT_DIR$/app/YtManagerApp/appconfig.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="12">
|
<state relative-caret-position="12">
|
||||||
<caret line="81" column="24" lean-forward="true" selection-start-line="81" selection-start-column="24" selection-end-line="81" selection-end-column="24" />
|
<caret line="81" column="24" lean-forward="true" selection-start-line="81" selection-start-column="24" selection-end-line="81" selection-end-column="24" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/app/YtManagerApp/urls.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="608">
|
||||||
|
<caret line="58" lean-forward="true" selection-start-line="58" selection-end-line="58" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/app/manage.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="315">
|
||||||
|
<caret line="22" lean-forward="true" selection-start-line="22" selection-end-line="22" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/config/log.log" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/docker/nginx/nginx.conf">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="465">
|
||||||
|
<caret line="31" lean-forward="true" selection-start-line="31" selection-end-line="31" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/config/defaults.ini">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="135">
|
||||||
|
<caret line="9" lean-forward="true" selection-start-line="9" selection-end-line="9" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/sqlite3.env.env" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/docker/config.ini">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="30">
|
||||||
|
<caret line="2" column="15" selection-start-line="2" selection-start-column="15" selection-end-line="2" selection-end-column="15" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/docker/requirements.txt">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="30">
|
||||||
|
<caret line="2" column="7" lean-forward="true" selection-start-line="2" selection-start-column="7" selection-end-line="2" selection-end-column="7" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/Dockerfile">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="165">
|
||||||
|
<caret line="11" column="22" lean-forward="true" selection-start-line="11" selection-start-column="22" selection-end-line="11" selection-end-column="22" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/docker-compose.yml">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="315">
|
||||||
|
<caret line="21" lean-forward="true" selection-start-line="21" selection-end-line="21" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/docker/init.sh">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="60">
|
||||||
|
<caret line="4" lean-forward="true" selection-start-line="4" selection-end-line="4" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file:///usr/lib/python3.6/configparser.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="242">
|
||||||
|
<caret line="1150" column="8" selection-start-line="1150" selection-start-column="8" selection-end-line="1150" selection-end-column="8" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/config/config.ini">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="105">
|
||||||
|
<caret line="7" lean-forward="true" selection-start-line="7" selection-end-line="7" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/app/YtManagerApp/utils/extended_interpolation_with_env.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="415">
|
||||||
|
<caret line="81" column="28" lean-forward="true" selection-start-line="81" selection-start-column="28" selection-end-line="81" selection-end-column="28" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#0#14#0" expanded="true" />
|
<element signature="e#0#9#0" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/app/YtManager/settings.py">
|
<entry file="file://$PROJECT_DIR$/app/YtManager/settings.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="217">
|
<state relative-caret-position="540">
|
||||||
<caret line="33" column="1" lean-forward="true" selection-start-line="33" selection-start-column="1" selection-end-line="33" selection-end-column="1" />
|
<caret line="177" lean-forward="true" selection-start-line="177" selection-end-line="177" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#314#323#0" expanded="true" />
|
<element signature="e#314#323#0" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
|
21
Dockerfile
21
Dockerfile
@ -1,26 +1,21 @@
|
|||||||
FROM python:3
|
FROM python:3
|
||||||
|
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/ytsm/app
|
||||||
|
|
||||||
|
# ffmpeg is needed for youtube-dl
|
||||||
RUN apt-get update
|
RUN apt-get update
|
||||||
RUN apt-get install ffmpeg -y
|
RUN apt-get install ffmpeg -y
|
||||||
|
|
||||||
COPY ./app/requirements.txt ./
|
COPY ./requirements.txt ./
|
||||||
RUN pip install --no-cache-dir -r requirements.txt
|
RUN pip install --no-cache-dir -r requirements.txt
|
||||||
|
|
||||||
ENV YTSM_DATABASE_ENGINE='django.db.backends.sqlite3'
|
ENV YTSM_DEBUG='False'
|
||||||
ENV YTSM_DATABASE_NAME='/usr/src/app/data/db/ytmanager.db'
|
|
||||||
ENV YTSM_DATABASE_HOST=''
|
|
||||||
ENV YTSM_DATABASE_USERNAME=''
|
|
||||||
ENV YTSM_DATABASE_PASSWORD=''
|
|
||||||
ENV YTSM_DATABASE_PORT=''
|
|
||||||
ENV YTSM_YOUTUBE_API_KEY='AIzaSyBabzE4Bup77WexdLMa9rN9z-wJidEfNX8'
|
|
||||||
|
|
||||||
VOLUME /usr/src/app/data/media
|
VOLUME /usr/src/ytsm/config
|
||||||
VOLUME /usr/src/app/data/db
|
VOLUME /usr/src/ytsm/data
|
||||||
|
|
||||||
COPY ./app/ .
|
COPY ./app/ ./
|
||||||
COPY ./config/ ./config/
|
COPY ./docker/init.sh ./
|
||||||
|
|
||||||
EXPOSE 8000
|
EXPOSE 8000
|
||||||
|
|
||||||
|
@ -12,6 +12,7 @@ https://docs.djangoproject.com/en/1.11/ref/settings/
|
|||||||
|
|
||||||
import os
|
import os
|
||||||
import logging
|
import logging
|
||||||
|
from os.path import dirname as up
|
||||||
|
|
||||||
#
|
#
|
||||||
# Basic Django stuff
|
# Basic Django stuff
|
||||||
@ -119,9 +120,11 @@ LOG_FORMAT = '%(asctime)s|%(process)d|%(thread)d|%(name)s|%(filename)s|%(lineno)
|
|||||||
#
|
#
|
||||||
|
|
||||||
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
|
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
|
||||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
PROJECT_ROOT = up(up(os.path.dirname(__file__))) # Project root
|
||||||
CONFIG_DIR = os.path.join(BASE_DIR, "config")
|
BASE_DIR = os.path.join(PROJECT_ROOT, "app") # Base dir of the application
|
||||||
DATA_DIR = os.path.join(BASE_DIR, "data")
|
CONFIG_DIR = os.path.join(PROJECT_ROOT, "config")
|
||||||
|
DATA_DIR = os.path.join(PROJECT_ROOT, "data")
|
||||||
|
STATIC_ROOT = os.path.join(PROJECT_ROOT, "static")
|
||||||
|
|
||||||
_DEFAULT_CONFIG_FILE = os.path.join(CONFIG_DIR, 'config.ini')
|
_DEFAULT_CONFIG_FILE = os.path.join(CONFIG_DIR, 'config.ini')
|
||||||
_DEFAULT_LOG_FILE = os.path.join(DATA_DIR, 'log.log')
|
_DEFAULT_LOG_FILE = os.path.join(DATA_DIR, 'log.log')
|
||||||
@ -160,7 +163,14 @@ def load_config_ini():
|
|||||||
import dj_database_url
|
import dj_database_url
|
||||||
|
|
||||||
cfg = ConfigParser(allow_no_value=True, interpolation=ExtendedInterpolatorWithEnv())
|
cfg = ConfigParser(allow_no_value=True, interpolation=ExtendedInterpolatorWithEnv())
|
||||||
cfg.read([DEFAULTS_FILE, CONFIG_FILE])
|
read_ok = cfg.read([DEFAULTS_FILE, CONFIG_FILE])
|
||||||
|
|
||||||
|
if DEFAULTS_FILE not in read_ok:
|
||||||
|
print('Failed to read file ' + DEFAULTS_FILE)
|
||||||
|
raise Exception('Cannot read file ' + DEFAULTS_FILE)
|
||||||
|
if CONFIG_FILE not in read_ok:
|
||||||
|
print('Failed to read file ' + CONFIG_FILE)
|
||||||
|
raise Exception('Cannot read file ' + CONFIG_FILE)
|
||||||
|
|
||||||
# Debug
|
# Debug
|
||||||
global DEBUG
|
global DEBUG
|
||||||
@ -183,7 +193,7 @@ def load_config_ini():
|
|||||||
}
|
}
|
||||||
|
|
||||||
if cfg.has_option('global', 'DatabaseURL'):
|
if cfg.has_option('global', 'DatabaseURL'):
|
||||||
DATABASES['default'] = dj_database_url.parse(cfg.get('global', 'DatabaseURL'))
|
DATABASES['default'] = dj_database_url.parse(cfg.get('global', 'DatabaseURL'), conn_max_age=600)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
DATABASES['default'] = {
|
DATABASES['default'] = {
|
||||||
|
@ -35,7 +35,7 @@ class ExtendedInterpolatorWithEnv(Interpolation):
|
|||||||
def _resolve_section_option(self, section, option, parser):
|
def _resolve_section_option(self, section, option, parser):
|
||||||
if section == 'env':
|
if section == 'env':
|
||||||
return os.getenv(option, '')
|
return os.getenv(option, '')
|
||||||
return parser.get(section, option, raw=True)
|
return parser.get(section, parser.optionxform(option), raw=True)
|
||||||
|
|
||||||
def _interpolate_some(self, parser, option, accum, rest, section, map,
|
def _interpolate_some(self, parser, option, accum, rest, section, map,
|
||||||
depth):
|
depth):
|
||||||
@ -70,7 +70,7 @@ class ExtendedInterpolatorWithEnv(Interpolation):
|
|||||||
v = self._resolve_option(opt, map)
|
v = self._resolve_option(opt, map)
|
||||||
elif len(path) == 2:
|
elif len(path) == 2:
|
||||||
sect = path[0]
|
sect = path[0]
|
||||||
opt = parser.optionxform(path[1])
|
opt = path[1]
|
||||||
v = self._resolve_section_option(sect, opt, parser)
|
v = self._resolve_section_option(sect, opt, parser)
|
||||||
else:
|
else:
|
||||||
raise InterpolationSyntaxError(
|
raise InterpolationSyntaxError(
|
||||||
|
@ -1 +0,0 @@
|
|||||||
config
|
|
@ -1,5 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
#./manage.py runserver 0.0.0.0:8000 --noreload
|
|
||||||
./manage.py migrate
|
|
||||||
gunicorn -b 0.0.0.0:8000 -w 4 YtManager.wsgi
|
|
@ -1,47 +1,75 @@
|
|||||||
; Use $<env:environment_variable> to use the value of an environment variable.
|
; Use ${env:environment_variable} to use the value of an environment variable.
|
||||||
|
; If a variable is not set here, it will be loaded from defaults.ini.
|
||||||
|
|
||||||
; The global section contains settings that apply to the entire server
|
; The global section contains settings that apply to the entire server
|
||||||
[global]
|
[global]
|
||||||
|
|
||||||
|
Debug=${env:YTSM_DEBUG}
|
||||||
|
|
||||||
|
; This is the folder where thumbnails will be downloaded. By default project_root/data/media is used.
|
||||||
|
;MediaRoot=
|
||||||
|
|
||||||
|
; Secret key - django secret key
|
||||||
|
;SecretKey=^zv8@i2h!ko2lo=%ivq(9e#x=%q*i^^)6#4@(juzdx%&0c+9a0
|
||||||
|
|
||||||
; YouTube API key - get this from your user account
|
; YouTube API key - get this from your user account
|
||||||
YoutubeApiKey=AIzaSyAonB6T-DrKjfGxBGuHyFMg0x_d0T9nlP8
|
;YoutubeApiKey=AIzaSyAonB6T-DrKjfGxBGuHyFMg0x_d0T9nlP8
|
||||||
|
|
||||||
|
; Database settings
|
||||||
|
; You can use any database engine supported by Django, as long as you add the required dependencies.
|
||||||
|
; Built-in engines: https://docs.djangoproject.com/en/2.1/ref/settings/#std:setting-DATABASE-ENGINE
|
||||||
|
; Others databases might be supported by installing the corect pip package.
|
||||||
|
|
||||||
|
;DatabaseEngine=django.db.backends.sqlite3
|
||||||
|
;DatabaseName=data/ytmanager.db
|
||||||
|
;DatabaseHost=
|
||||||
|
;DatabaseUser=
|
||||||
|
;DatabasePassword=
|
||||||
|
;DatabasePort=
|
||||||
|
|
||||||
|
; Database one-liner. If set, it will override any other Database* setting.
|
||||||
|
; Documentation: https://github.com/kennethreitz/dj-database-url
|
||||||
|
;DatabaseURL=sqlite:////full/path/to/your/database/file.sqlite
|
||||||
|
|
||||||
|
; Log settings, sets the log file location and the log level
|
||||||
|
;LogLevel=INFO
|
||||||
|
;LogFile=data/log.log
|
||||||
|
|
||||||
; Specifies the synchronization schedule, in crontab format.
|
; Specifies the synchronization schedule, in crontab format.
|
||||||
; Format: <minute> <hour> <day-of-month> <month-of-year> <day of week>
|
; Format: <minute> <hour> <day-of-month> <month-of-year> <day of week>
|
||||||
SynchronizationSchedule=5 * * * *
|
;SynchronizationSchedule=5 * * * *
|
||||||
|
|
||||||
; Number of threads running the scheduler
|
; Number of threads running the scheduler
|
||||||
; Since most of the jobs scheduled are downloads, there is no advantage to having
|
; Since most of the jobs scheduled are downloads, there is no advantage to having
|
||||||
; a higher concurrency
|
; a higher concurrency
|
||||||
SchedulerConcurrency=1
|
;SchedulerConcurrency=1
|
||||||
|
|
||||||
; Log level
|
|
||||||
LogLevel=DEBUG
|
|
||||||
|
|
||||||
; Default user settings
|
; Default user settings
|
||||||
[user]
|
[user]
|
||||||
; When a video is deleted on the system, it will be marked as 'watched'
|
; When a video is deleted on the system, it will be marked as 'watched'
|
||||||
MarkDeletedAsWatched=True
|
;MarkDeletedAsWatched=True
|
||||||
|
|
||||||
; Videos marked as watched are automatically deleted
|
; Videos marked as watched are automatically deleted
|
||||||
DeleteWatched=True
|
;DeleteWatched=True
|
||||||
|
|
||||||
; Enable automatic downloading
|
; Enable automatic downloading
|
||||||
AutoDownload=True
|
;AutoDownload=True
|
||||||
|
|
||||||
; Limit the total number of videos downloaded (-1 or empty = no limit)
|
; Limit the total number of videos downloaded (-1 or empty = no limit)
|
||||||
DownloadGlobalLimit=10
|
;DownloadGlobalLimit=10
|
||||||
|
|
||||||
; Limit the numbers of videos per subscription (-1 or empty = no limit)
|
; Limit the numbers of videos per subscription (-1 or empty = no limit)
|
||||||
DownloadSubscriptionLimit=5
|
;DownloadSubscriptionLimit=5
|
||||||
|
|
||||||
; Number of download attempts
|
; Number of download attempts
|
||||||
DownloadMaxAttempts=3
|
;DownloadMaxAttempts=3
|
||||||
|
|
||||||
; Download order
|
; Download order
|
||||||
; Options: newest, oldest, playlist, playlist_reverse, popularity, rating
|
; Options: newest, oldest, playlist, playlist_reverse, popularity, rating
|
||||||
DownloadOrder=playlist
|
;DownloadOrder=playlist
|
||||||
|
|
||||||
; Path where downloaded videos are stored
|
; Path where downloaded videos are stored
|
||||||
DownloadPath=data/media/videos
|
;DownloadPath=data/media/videos
|
||||||
|
|
||||||
; A pattern which describes how downloaded files are organized. Extensions are automatically appended.
|
; A pattern which describes how downloaded files are organized. Extensions are automatically appended.
|
||||||
; Supported fields: channel, channel_id, playlist, playlist_id, playlist_index, title, id
|
; Supported fields: channel, channel_id, playlist, playlist_id, playlist_index, title, id
|
||||||
@ -49,7 +77,7 @@ DownloadPath=data/media/videos
|
|||||||
;DownloadFilePattern=${channel}/${playlist}/S01E${playlist_index} - ${title} [${id}]
|
;DownloadFilePattern=${channel}/${playlist}/S01E${playlist_index} - ${title} [${id}]
|
||||||
|
|
||||||
; Download format that will be passed to youtube-dl. See the youtube-dl documentation for more details.
|
; Download format that will be passed to youtube-dl. See the youtube-dl documentation for more details.
|
||||||
DownloadFormat=bestvideo+bestaudio
|
;DownloadFormat=bestvideo+bestaudio
|
||||||
|
|
||||||
; Subtitles - these options match the youtube-dl options
|
; Subtitles - these options match the youtube-dl options
|
||||||
;DownloadSubtitles=True
|
;DownloadSubtitles=True
|
||||||
|
@ -1,20 +1,48 @@
|
|||||||
; Use $<env:environment_variable> to use the value of an environment variable.
|
; Use ${env:environment_variable} to use the value of an environment variable.
|
||||||
; The global section contains settings that apply to the entire server
|
; The global section contains settings that apply to the entire server
|
||||||
[global]
|
[global]
|
||||||
|
|
||||||
|
; Controls whether django debug mode is enabled. Should be false in production.
|
||||||
|
Debug=False
|
||||||
|
|
||||||
|
; This is the folder where thumbnails will be downloaded. By default project_root/data/media is used.
|
||||||
|
;MediaRoot=
|
||||||
|
|
||||||
|
; Secret key - django secret key
|
||||||
|
SecretKey=^zv8@i2h!ko2lo=%ivq(9e#x=%q*i^^)6#4@(juzdx%&0c+9a0
|
||||||
|
|
||||||
; YouTube API key - get this from your user account
|
; YouTube API key - get this from your user account
|
||||||
YoutubeApiKey=AIzaSyBabzE4Bup77WexdLMa9rN9z-wJidEfNX8
|
YoutubeApiKey=AIzaSyBabzE4Bup77WexdLMa9rN9z-wJidEfNX8
|
||||||
|
|
||||||
|
; Database settings
|
||||||
|
; You can use any database engine supported by Django, as long as you add the required dependencies.
|
||||||
|
; Built-in engines: https://docs.djangoproject.com/en/2.1/ref/settings/#std:setting-DATABASE-ENGINE
|
||||||
|
; Others databases might be supported by installing the corect pip package.
|
||||||
|
|
||||||
|
;DatabaseEngine=django.db.backends.sqlite3
|
||||||
|
;DatabaseName=data/ytmanager.db
|
||||||
|
;DatabaseHost=
|
||||||
|
;DatabaseUser=
|
||||||
|
;DatabasePassword=
|
||||||
|
;DatabasePort=
|
||||||
|
|
||||||
|
; Database one-liner. If set, it will override any other Database* setting.
|
||||||
|
; Documentation: https://github.com/kennethreitz/dj-database-url
|
||||||
|
;DatabaseURL=sqlite:////full/path/to/your/database/file.sqlite
|
||||||
|
|
||||||
|
; Log settings, sets the log file location and the log level
|
||||||
|
LogLevel=INFO
|
||||||
|
; LogFile=data/log.log
|
||||||
|
|
||||||
; Specifies the synchronization schedule, in crontab format.
|
; Specifies the synchronization schedule, in crontab format.
|
||||||
; Format: <minute> <hour> <day-of-month> <month-of-year> <day of week>
|
; Format: <minute> <hour> <day-of-month> <month-of-year> <day of week>
|
||||||
SynchronizationSchedule=0 * * * *
|
SynchronizationSchedule=5 * * * *
|
||||||
|
|
||||||
; Number of threads running the scheduler
|
; Number of threads running the scheduler
|
||||||
; Since most of the jobs scheduled are downloads, there is no advantage to having
|
; Since most of the jobs scheduled are downloads, there is no advantage to having
|
||||||
; a higher concurrency
|
; a higher concurrency
|
||||||
SchedulerConcurrency=2
|
SchedulerConcurrency=1
|
||||||
|
|
||||||
; Log level
|
|
||||||
LogLevel=INFO
|
|
||||||
|
|
||||||
; Default user settings
|
; Default user settings
|
||||||
[user]
|
[user]
|
||||||
|
@ -4,7 +4,7 @@ services:
|
|||||||
nginx:
|
nginx:
|
||||||
image: nginx:latest
|
image: nginx:latest
|
||||||
volumes:
|
volumes:
|
||||||
- ./nginx:/etc/nginx/conf.d/
|
- ./docker/nginx:/etc/nginx/conf.d/
|
||||||
- ./app/YtManagerApp/static:/www/static
|
- ./app/YtManagerApp/static:/www/static
|
||||||
ports:
|
ports:
|
||||||
- "80:80"
|
- "80:80"
|
||||||
@ -13,11 +13,9 @@ services:
|
|||||||
|
|
||||||
web:
|
web:
|
||||||
build: .
|
build: .
|
||||||
env_file:
|
|
||||||
- sqlite3.env.env
|
|
||||||
tty: true
|
tty: true
|
||||||
ports:
|
ports:
|
||||||
- "8000:8000"
|
- "8000:8000"
|
||||||
volumes:
|
volumes:
|
||||||
- ./media:/usr/src/app/data/media
|
- ./config:/usr/src/ytsm/config
|
||||||
- ./db:/usr/src/app/data/db
|
- ./data:/usr/src/ytsm/data
|
||||||
|
4
docker/init.sh
Executable file
4
docker/init.sh
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
./manage.py migrate
|
||||||
|
gunicorn -b 0.0.0.0:8000 -w 1 YtManager.wsgi
|
@ -1,3 +0,0 @@
|
|||||||
YTSM_DATABASE_ENGINE=django.db.backends.sqlite3
|
|
||||||
YTSM_DATABASE_NAME=/usr/src/app/data/db/ytmanager.db
|
|
||||||
YTSM_YOUTUBE_API_KEY=AIzaSyBabzE4Bup77WexdLMa9rN9z-wJidEfNX8
|
|
Loading…
Reference in New Issue
Block a user