From 87e1e5a30cb2d4dd263594242c0071733747d6cc Mon Sep 17 00:00:00 2001 From: Javinator9889 Date: Mon, 22 Jul 2019 14:30:14 +0200 Subject: [PATCH] Created new MySQL model - database reworked --- Design/DB_STRUCTURE/Logical.svg | 276 -- Design/DB_STRUCTURE/Relational.svg | 554 --- Design/DB_STRUCTURE/database_design.dmd | 8 - .../database_design/ChangeRequests.local | 2 - .../businessinfo/Business Information.xml | 7 - .../businessinfo/Objects.local | 2 - .../datatypes/DDLSelection.local | 2 - .../database_design/datatypes/DataTypes.xml | 15 - .../database_design/datatypes/Diagrams.local | 4 - .../database_design/datatypes/Objects.local | 5 - .../47E390DE-0671-C4B1-8428-0F45CBEE18F8.xml | 10 - .../F72C39E0-D1CA-8821-2AD7-A1E95A37D3D1.xml | 10 - .../CFDE5FC8-D6A4-DF2D-FAA9-F1FC327377FA.xml | 26 - .../database_design/dl_settings.xml | 434 --- .../database_design/dmd_open.local | 6 - .../database_design/logical/Diagrams.local | 4 - .../database_design/logical/Logical.xml | 7 - .../database_design/logical/Objects.local | 14 - .../1558C95F-4CEC-1E30-AA15-58B7C6ACD81B.xml | 89 - .../312E0255-FAA7-1630-54E5-A4FCB50F6276.xml | 89 - .../52FEBBBF-C76E-AEF4-45C5-3341E59BD946.xml | 112 - .../96125017-F1D2-153D-CBAC-D12E0939CF4E.xml | 86 - .../B1A287E6-50CA-DB8B-0AAD-60C303A2A402.xml | 73 - .../FB782D70-50E0-0A98-4654-5E94050F8458.xml | 114 - .../1D1B52B1-8974-5046-5AB7-7AB4BF89C08A.xml | 20 - .../46906DFA-66DD-2DD5-790C-7A87FFE7755C.xml | 19 - .../B934A368-41CA-2247-7505-4DDD707ADAB7.xml | 19 - .../C49FD692-24A0-3030-2280-A4D5B8CDFC01.xml | 19 - .../DDBAFE8B-B820-1773-EE96-8B363262CAA9.xml | 19 - .../2C149101-C988-9E4D-2C9E-2746FB965570.xml | 89 - ...RM351C3A3B-985F-1B54-60FE-A46161E8F350.xml | 3 - ...RMC5DFC5DD-35E9-B422-B2BF-B7648E7DE99B.xml | 7 - .../database_design/mapping/ExtendedMap.xml | 3 - ...RM351C3A3B-985F-1B54-60FE-A46161E8F350.xml | 3 - ...RMC5DFC5DD-35E9-B422-B2BF-B7648E7DE99B.xml | 100 - .../database_design/pm/Objects.local | 2 - .../database_design/pm/Process Model.xml | 7 - .../rdbms/database_design_RDBMSSites.xml | 2 - .../rel/C5DFC5DD-B7648E7DE99B.xml | 8 - .../C5DFC5DD-B7648E7DE99B/DDLSelection.local | 2 - .../rel/C5DFC5DD-B7648E7DE99B/Diagrams.local | 4 - .../rel/C5DFC5DD-B7648E7DE99B/Objects.local | 18 - .../14761BF2-0284-F09E-1C36-5AD59C18B84E.xml | 17 - .../518E00B2-30C8-083A-0841-D61034BE188E.xml | 17 - .../51EE3780-3B5D-E1A1-65B0-7ED699DD5948.xml | 17 - .../6A45C1C6-8C3B-317C-9221-BA841A05B730.xml | 17 - .../6AA622A5-D308-C63C-2AF6-730CF06EBF34.xml | 17 - .../B59DC6EC-C75B-86D4-AFA3-705630B49873.xml | 17 - .../C7DC4550-6D2C-B38B-5C23-5E37D6D8832D.xml | 17 - .../DDF9FCBE-2830-5AB6-3DD0-B2CFAA840673.xml | 115 - .../0AF231FE-3CA2-BFD0-E42B-0DFDC72D4D26.xml | 95 - .../1243C675-86A2-977F-2EFA-8F6C72D2CB26.xml | 88 - .../175D64CD-6D93-E0AE-DD13-FF75CAB2DC92.xml | 73 - .../25DE0936-5106-79A2-1678-9EAA1E0DA843.xml | 100 - .../47A181FD-9D20-6987-2EAE-0B7F53C88FB3.xml | 77 - .../D088A558-CA22-9A96-F938-4F7712E4AEF1.xml | 103 - .../D1128F38-5763-FC3D-4FB1-14F78EDBE4CB.xml | 103 - .../F0AD5A40-5659-C806-BEA1-595FD0DB5F39.xml | 76 - Design/DB_STRUCTURE/db_script.cql | 10 - Design/DB_STRUCTURE/db_script.ddl | 147 - Design/Database/database_model.mwb | Bin 0 -> 12708 bytes Design/Database/database_model.mwb.bak | Bin 0 -> 12728 bytes Design/Database/generated_sql_file.sql | 251 ++ Design/Database/img_database_model.png | Bin 0 -> 114674 bytes Design/Database/pdf_database_model.pdf | Bin 0 -> 31916 bytes Design/Database/vect_database_model.svg | 3111 +++++++++++++++++ .../Software Requirement Specification.docx | Bin 211872 -> 211834 bytes youtube_md_bot/.idea/deployment.xml | 14 - .../inspectionProfiles/Project_Default.xml | 27 - youtube_md_bot/.idea/misc.xml | 7 - youtube_md_bot/.idea/modules.xml | 8 - youtube_md_bot/.idea/sqlDataSources.xml | 18 - youtube_md_bot/.idea/vcs.xml | 6 - youtube_md_bot/.idea/workspace.xml | 939 ----- youtube_md_bot/.idea/youtube_md_bot.iml | 14 - youtube_md_bot/__init__.py | 157 - youtube_md_bot/database/__init__.py | 340 -- youtube_md_bot/db_script_pycharm.ddl | 10 - youtube_md_bot/handlers/DeveloperHandler.py | 10 - youtube_md_bot/handlers/HelpHandler.py | 88 - youtube_md_bot/handlers/StartHandler.py | 34 - youtube_md_bot/handlers/TextHandler.py | 10 - youtube_md_bot/handlers/URLHandler.py | 10 - youtube_md_bot/handlers/UnexpectedHandler.py | 10 - youtube_md_bot/handlers/VideoIDHandler.py | 10 - youtube_md_bot/handlers/__init__.py | 9 - youtube_md_bot/messages/messages.json | 32 - youtube_md_bot/out/__init__.py | 27 - youtube_md_bot/requirements.txt | 4 - youtube_md_bot/upgrader/__init__.py | 10 - youtube_md_bot/utils/__init__.py | 23 - youtube_md_bot/utils/logger.py | 37 - 92 files changed, 3362 insertions(+), 5253 deletions(-) delete mode 100644 Design/DB_STRUCTURE/Logical.svg delete mode 100644 Design/DB_STRUCTURE/Relational.svg delete mode 100644 Design/DB_STRUCTURE/database_design.dmd delete mode 100644 Design/DB_STRUCTURE/database_design/ChangeRequests.local delete mode 100644 Design/DB_STRUCTURE/database_design/businessinfo/Business Information.xml delete mode 100644 Design/DB_STRUCTURE/database_design/businessinfo/Objects.local delete mode 100644 Design/DB_STRUCTURE/database_design/datatypes/DDLSelection.local delete mode 100644 Design/DB_STRUCTURE/database_design/datatypes/DataTypes.xml delete mode 100644 Design/DB_STRUCTURE/database_design/datatypes/Diagrams.local delete mode 100644 Design/DB_STRUCTURE/database_design/datatypes/Objects.local delete mode 100644 Design/DB_STRUCTURE/database_design/datatypes/structuredtype/seg_0/47E390DE-0671-C4B1-8428-0F45CBEE18F8.xml delete mode 100644 Design/DB_STRUCTURE/database_design/datatypes/structuredtype/seg_0/F72C39E0-D1CA-8821-2AD7-A1E95A37D3D1.xml delete mode 100644 Design/DB_STRUCTURE/database_design/datatypes/subviews/CFDE5FC8-D6A4-DF2D-FAA9-F1FC327377FA.xml delete mode 100644 Design/DB_STRUCTURE/database_design/dl_settings.xml delete mode 100644 Design/DB_STRUCTURE/database_design/dmd_open.local delete mode 100644 Design/DB_STRUCTURE/database_design/logical/Diagrams.local delete mode 100644 Design/DB_STRUCTURE/database_design/logical/Logical.xml delete mode 100644 Design/DB_STRUCTURE/database_design/logical/Objects.local delete mode 100644 Design/DB_STRUCTURE/database_design/logical/entity/seg_0/1558C95F-4CEC-1E30-AA15-58B7C6ACD81B.xml delete mode 100644 Design/DB_STRUCTURE/database_design/logical/entity/seg_0/312E0255-FAA7-1630-54E5-A4FCB50F6276.xml delete mode 100644 Design/DB_STRUCTURE/database_design/logical/entity/seg_0/52FEBBBF-C76E-AEF4-45C5-3341E59BD946.xml delete mode 100644 Design/DB_STRUCTURE/database_design/logical/entity/seg_0/96125017-F1D2-153D-CBAC-D12E0939CF4E.xml delete mode 100644 Design/DB_STRUCTURE/database_design/logical/entity/seg_0/B1A287E6-50CA-DB8B-0AAD-60C303A2A402.xml delete mode 100644 Design/DB_STRUCTURE/database_design/logical/entity/seg_0/FB782D70-50E0-0A98-4654-5E94050F8458.xml delete mode 100644 Design/DB_STRUCTURE/database_design/logical/relation/seg_0/1D1B52B1-8974-5046-5AB7-7AB4BF89C08A.xml delete mode 100644 Design/DB_STRUCTURE/database_design/logical/relation/seg_0/46906DFA-66DD-2DD5-790C-7A87FFE7755C.xml delete mode 100644 Design/DB_STRUCTURE/database_design/logical/relation/seg_0/B934A368-41CA-2247-7505-4DDD707ADAB7.xml delete mode 100644 Design/DB_STRUCTURE/database_design/logical/relation/seg_0/C49FD692-24A0-3030-2280-A4D5B8CDFC01.xml delete mode 100644 Design/DB_STRUCTURE/database_design/logical/relation/seg_0/DDBAFE8B-B820-1773-EE96-8B363262CAA9.xml delete mode 100644 Design/DB_STRUCTURE/database_design/logical/subviews/2C149101-C988-9E4D-2C9E-2746FB965570.xml delete mode 100644 Design/DB_STRUCTURE/database_design/mapping/DeletedMap_RM351C3A3B-985F-1B54-60FE-A46161E8F350.xml delete mode 100644 Design/DB_STRUCTURE/database_design/mapping/DeletedMap_RMC5DFC5DD-35E9-B422-B2BF-B7648E7DE99B.xml delete mode 100644 Design/DB_STRUCTURE/database_design/mapping/ExtendedMap.xml delete mode 100644 Design/DB_STRUCTURE/database_design/mapping/ExtendedMap_RM351C3A3B-985F-1B54-60FE-A46161E8F350.xml delete mode 100644 Design/DB_STRUCTURE/database_design/mapping/ExtendedMap_RMC5DFC5DD-35E9-B422-B2BF-B7648E7DE99B.xml delete mode 100644 Design/DB_STRUCTURE/database_design/pm/Objects.local delete mode 100644 Design/DB_STRUCTURE/database_design/pm/Process Model.xml delete mode 100644 Design/DB_STRUCTURE/database_design/rdbms/database_design_RDBMSSites.xml delete mode 100644 Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B.xml delete mode 100644 Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/DDLSelection.local delete mode 100644 Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/Diagrams.local delete mode 100644 Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/Objects.local delete mode 100644 Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/foreignkey/seg_0/14761BF2-0284-F09E-1C36-5AD59C18B84E.xml delete mode 100644 Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/foreignkey/seg_0/518E00B2-30C8-083A-0841-D61034BE188E.xml delete mode 100644 Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/foreignkey/seg_0/51EE3780-3B5D-E1A1-65B0-7ED699DD5948.xml delete mode 100644 Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/foreignkey/seg_0/6A45C1C6-8C3B-317C-9221-BA841A05B730.xml delete mode 100644 Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/foreignkey/seg_0/6AA622A5-D308-C63C-2AF6-730CF06EBF34.xml delete mode 100644 Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/foreignkey/seg_0/B59DC6EC-C75B-86D4-AFA3-705630B49873.xml delete mode 100644 Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/foreignkey/seg_0/C7DC4550-6D2C-B38B-5C23-5E37D6D8832D.xml delete mode 100644 Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/subviews/DDF9FCBE-2830-5AB6-3DD0-B2CFAA840673.xml delete mode 100644 Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/table/seg_0/0AF231FE-3CA2-BFD0-E42B-0DFDC72D4D26.xml delete mode 100644 Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/table/seg_0/1243C675-86A2-977F-2EFA-8F6C72D2CB26.xml delete mode 100644 Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/table/seg_0/175D64CD-6D93-E0AE-DD13-FF75CAB2DC92.xml delete mode 100644 Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/table/seg_0/25DE0936-5106-79A2-1678-9EAA1E0DA843.xml delete mode 100644 Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/table/seg_0/47A181FD-9D20-6987-2EAE-0B7F53C88FB3.xml delete mode 100644 Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/table/seg_0/D088A558-CA22-9A96-F938-4F7712E4AEF1.xml delete mode 100644 Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/table/seg_0/D1128F38-5763-FC3D-4FB1-14F78EDBE4CB.xml delete mode 100644 Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/table/seg_0/F0AD5A40-5659-C806-BEA1-595FD0DB5F39.xml delete mode 100644 Design/DB_STRUCTURE/db_script.cql delete mode 100644 Design/DB_STRUCTURE/db_script.ddl create mode 100644 Design/Database/database_model.mwb create mode 100644 Design/Database/database_model.mwb.bak create mode 100644 Design/Database/generated_sql_file.sql create mode 100644 Design/Database/img_database_model.png create mode 100644 Design/Database/pdf_database_model.pdf create mode 100644 Design/Database/vect_database_model.svg delete mode 100644 youtube_md_bot/.idea/deployment.xml delete mode 100644 youtube_md_bot/.idea/inspectionProfiles/Project_Default.xml delete mode 100644 youtube_md_bot/.idea/misc.xml delete mode 100644 youtube_md_bot/.idea/modules.xml delete mode 100644 youtube_md_bot/.idea/sqlDataSources.xml delete mode 100644 youtube_md_bot/.idea/vcs.xml delete mode 100644 youtube_md_bot/.idea/workspace.xml delete mode 100644 youtube_md_bot/.idea/youtube_md_bot.iml delete mode 100644 youtube_md_bot/__init__.py delete mode 100644 youtube_md_bot/database/__init__.py delete mode 100644 youtube_md_bot/db_script_pycharm.ddl delete mode 100644 youtube_md_bot/handlers/DeveloperHandler.py delete mode 100644 youtube_md_bot/handlers/HelpHandler.py delete mode 100644 youtube_md_bot/handlers/StartHandler.py delete mode 100644 youtube_md_bot/handlers/TextHandler.py delete mode 100644 youtube_md_bot/handlers/URLHandler.py delete mode 100644 youtube_md_bot/handlers/UnexpectedHandler.py delete mode 100644 youtube_md_bot/handlers/VideoIDHandler.py delete mode 100644 youtube_md_bot/handlers/__init__.py delete mode 100644 youtube_md_bot/messages/messages.json delete mode 100644 youtube_md_bot/out/__init__.py delete mode 100644 youtube_md_bot/requirements.txt delete mode 100644 youtube_md_bot/upgrader/__init__.py delete mode 100644 youtube_md_bot/utils/__init__.py delete mode 100644 youtube_md_bot/utils/logger.py diff --git a/Design/DB_STRUCTURE/Logical.svg b/Design/DB_STRUCTURE/Logical.svg deleted file mode 100644 index 8174878..0000000 --- a/Design/DB_STRUCTURE/Logical.svg +++ /dev/null @@ -1,276 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Metadata - - -o - - -title - - -o - - -artist - - -o - - -cover - - -o - - -duration - - - - - -Preferences - - -o - - -audio_quality - - -o - - -audio_format - - -o - - -os - - -o - - -should_ask_metadata - - - - - -Playlist - - -* - - -P - - -playlist_unique_id - - -* - - -playlist_id - - -o - - -number_elements - - -o - - -times_requested - - -o - - -playlist_quality - - -o - - -playlist_format - - - - - -Statistics - - -o - - -lang - - -o - - -downloads - - -o - - -last_time_active - - - - - -Music - - -* - - -P - - -file_id - - -o - - -video_id - - -o - - -audio_quality - - -o - - -audio_format - - -o - - -times_requested - - -o - - -is_metadata_by_user - - - - - -User - - -* - - -P - - -user_id - - -o - - -username - - -o - - -name - - -o - - -first_use - - - - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/Relational.svg b/Design/DB_STRUCTURE/Relational.svg deleted file mode 100644 index b073c52..0000000 --- a/Design/DB_STRUCTURE/Relational.svg +++ /dev/null @@ -1,554 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Playlist - - - -* - - -P - - -playlist_unique_id - - -VARCHAR2 (256 CHAR) - - -* - - -playlist_id - - -VARCHAR2 (256 CHAR) - - - - - -number_elements - - -INTEGER - - - - - -times_requested - - -INTEGER - - - - - -playlist_quality - - -INTEGER - - - - - -playlist_format - - -INTEGER - - - - -Playlist_PK (playlist_unique_id) - - - - - -Statistics - - - - - - -lang - - -VARCHAR2 (5 CHAR) - - - - - -downloads - - -INTEGER - - - - - -last_time_active - - -DATE - - -* - - -F - - -User_user_id - - -INTEGER - - - - -Statistics_User_FK (User_user_id) - - - -U - - -Statistics__IDX (User_user_id) - - - - - -User - - - -* - - -P - - -user_id - - -INTEGER - - - - - -username - - -VARCHAR2 (45 CHAR) - - - - - -name - - -CLOB - - - - - -first_use - - -DATE - - - - -User_PK (user_id) - - - - - -Music - - - -* - - -P - - -file_id - - -VARCHAR2 (256 CHAR) - - - - - -video_id - - -VARCHAR2 (20 CHAR) - - - - - -audio_quality - - -INTEGER - - - - - -audio_format - - -INTEGER - - - - - -times_requested - - -INTEGER - - - - - -is_metadata_by_user - - -CHAR (1) - - - - -Music_PK (file_id) - - - - - -Playlist_has_Music - - - -* - - -PF - - -playlist_unique_id - - -VARCHAR2 (256 CHAR) - - -* - - -PF - - -Music_file_id - - -VARCHAR2 (256 CHAR) - - - - -Playlist_has_Music_PK (Music_file_id, playlist_unique_id) - - - - -Playlist_has_Music_Playlist_FK (playlist_unique_id) - - - -Playlist_has_Music_Music_FK (Music_file_id) - - - - - -Preferences - - - - - - -audio_quality - - -VARCHAR2 (5 CHAR) - - - - - -audio_format - - -VARCHAR2 (5 CHAR) - - - - - -os - - -VARCHAR2 (10 CHAR) - - - - - -should_ask_metadata - - -CHAR (1) - - -* - - -F - - -User_user_id - - -INTEGER - - - - -Preferences_User_FK (User_user_id) - - - -U - - -Preferences__IDX (User_user_id) - - - - - -Metadata - - - - - - -title - - -VARCHAR2 (256 CHAR) - - - - - -artist - - -VARCHAR2 (256 CHAR) - - - - - -cover - - -CLOB - - - - - -duration - - -VARCHAR2 (20 CHAR) - - -* - - -F - - -Music_file_id - - -VARCHAR2 (256 CHAR) - - - - -Metadata_Music_FK (Music_file_id) - - - -U - - -Metadata__IDX (Music_file_id) - - - - - -History - - - -* - - -PF - - -User_user_id - - -INTEGER - - -* - - -PF - - -Music_file_id - - -VARCHAR2 (256 CHAR) - - - - -History_PK (User_user_id, Music_file_id) - - - - -History_User_FK (User_user_id) - - - -History_Music_FK (Music_file_id) - - - - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design.dmd b/Design/DB_STRUCTURE/database_design.dmd deleted file mode 100644 index 56c7fe3..0000000 --- a/Design/DB_STRUCTURE/database_design.dmd +++ /dev/null @@ -1,8 +0,0 @@ - - -Javier Alonso Silva -2018-06-18 14:24:29 UTC -database_design -false -3C168D0F-3177-9281-C715-B5AB03BB32C4 - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/ChangeRequests.local b/Design/DB_STRUCTURE/database_design/ChangeRequests.local deleted file mode 100644 index 647e766..0000000 --- a/Design/DB_STRUCTURE/database_design/ChangeRequests.local +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/Design/DB_STRUCTURE/database_design/businessinfo/Business Information.xml b/Design/DB_STRUCTURE/database_design/businessinfo/Business Information.xml deleted file mode 100644 index 0efdef7..0000000 --- a/Design/DB_STRUCTURE/database_design/businessinfo/Business Information.xml +++ /dev/null @@ -1,7 +0,0 @@ - - -Javier Alonso Silva -2018-06-18 14:24:30 UTC -database_design -false - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/businessinfo/Objects.local b/Design/DB_STRUCTURE/database_design/businessinfo/Objects.local deleted file mode 100644 index d8a4386..0000000 --- a/Design/DB_STRUCTURE/database_design/businessinfo/Objects.local +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/Design/DB_STRUCTURE/database_design/datatypes/DDLSelection.local b/Design/DB_STRUCTURE/database_design/datatypes/DDLSelection.local deleted file mode 100644 index 0030592..0000000 --- a/Design/DB_STRUCTURE/database_design/datatypes/DDLSelection.local +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/Design/DB_STRUCTURE/database_design/datatypes/DataTypes.xml b/Design/DB_STRUCTURE/database_design/datatypes/DataTypes.xml deleted file mode 100644 index 542e77f..0000000 --- a/Design/DB_STRUCTURE/database_design/datatypes/DataTypes.xml +++ /dev/null @@ -1,15 +0,0 @@ - - -Javier Alonso Silva -2018-06-18 14:24:30 UTC -database_design -false -array_ref_ -array_ -10 -ARRAY -_Array -inst_ -ref_ -true - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/datatypes/Diagrams.local b/Design/DB_STRUCTURE/database_design/datatypes/Diagrams.local deleted file mode 100644 index c1f552c..0000000 --- a/Design/DB_STRUCTURE/database_design/datatypes/Diagrams.local +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/Design/DB_STRUCTURE/database_design/datatypes/Objects.local b/Design/DB_STRUCTURE/database_design/datatypes/Objects.local deleted file mode 100644 index aedbb26..0000000 --- a/Design/DB_STRUCTURE/database_design/datatypes/Objects.local +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/Design/DB_STRUCTURE/database_design/datatypes/structuredtype/seg_0/47E390DE-0671-C4B1-8428-0F45CBEE18F8.xml b/Design/DB_STRUCTURE/database_design/datatypes/structuredtype/seg_0/47E390DE-0671-C4B1-8428-0F45CBEE18F8.xml deleted file mode 100644 index 3013800..0000000 --- a/Design/DB_STRUCTURE/database_design/datatypes/structuredtype/seg_0/47E390DE-0671-C4B1-8428-0F45CBEE18F8.xml +++ /dev/null @@ -1,10 +0,0 @@ - - -Javier Alonso Silva -2018-06-18 14:24:30 UTC -database_design -false -true -false -true - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/datatypes/structuredtype/seg_0/F72C39E0-D1CA-8821-2AD7-A1E95A37D3D1.xml b/Design/DB_STRUCTURE/database_design/datatypes/structuredtype/seg_0/F72C39E0-D1CA-8821-2AD7-A1E95A37D3D1.xml deleted file mode 100644 index a6fb615..0000000 --- a/Design/DB_STRUCTURE/database_design/datatypes/structuredtype/seg_0/F72C39E0-D1CA-8821-2AD7-A1E95A37D3D1.xml +++ /dev/null @@ -1,10 +0,0 @@ - - -Javier Alonso Silva -2018-06-18 14:24:30 UTC -database_design -false -true -false -true - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/datatypes/subviews/CFDE5FC8-D6A4-DF2D-FAA9-F1FC327377FA.xml b/Design/DB_STRUCTURE/database_design/datatypes/subviews/CFDE5FC8-D6A4-DF2D-FAA9-F1FC327377FA.xml deleted file mode 100644 index ba94c3b..0000000 --- a/Design/DB_STRUCTURE/database_design/datatypes/subviews/CFDE5FC8-D6A4-DF2D-FAA9-F1FC327377FA.xml +++ /dev/null @@ -1,26 +0,0 @@ - - -Javier Alonso Silva -Javier Alonso Silva -2018-06-18 14:24:30 UTC -false -true -false -true -false -false -false --1 -false -1 - - -false - - - -false - - - - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/dl_settings.xml b/Design/DB_STRUCTURE/database_design/dl_settings.xml deleted file mode 100644 index 2bee852..0000000 --- a/Design/DB_STRUCTURE/database_design/dl_settings.xml +++ /dev/null @@ -1,434 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
\ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/dmd_open.local b/Design/DB_STRUCTURE/database_design/dmd_open.local deleted file mode 100644 index ed28034..0000000 --- a/Design/DB_STRUCTURE/database_design/dmd_open.local +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/logical/Diagrams.local b/Design/DB_STRUCTURE/database_design/logical/Diagrams.local deleted file mode 100644 index ba42f49..0000000 --- a/Design/DB_STRUCTURE/database_design/logical/Diagrams.local +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/Design/DB_STRUCTURE/database_design/logical/Logical.xml b/Design/DB_STRUCTURE/database_design/logical/Logical.xml deleted file mode 100644 index 7dc2c30..0000000 --- a/Design/DB_STRUCTURE/database_design/logical/Logical.xml +++ /dev/null @@ -1,7 +0,0 @@ - - -Javier Alonso Silva -2018-06-18 14:24:29 UTC -database_design -false - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/logical/Objects.local b/Design/DB_STRUCTURE/database_design/logical/Objects.local deleted file mode 100644 index da73ab3..0000000 --- a/Design/DB_STRUCTURE/database_design/logical/Objects.local +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/Design/DB_STRUCTURE/database_design/logical/entity/seg_0/1558C95F-4CEC-1E30-AA15-58B7C6ACD81B.xml b/Design/DB_STRUCTURE/database_design/logical/entity/seg_0/1558C95F-4CEC-1E30-AA15-58B7C6ACD81B.xml deleted file mode 100644 index 10dc797..0000000 --- a/Design/DB_STRUCTURE/database_design/logical/entity/seg_0/1558C95F-4CEC-1E30-AA15-58B7C6ACD81B.xml +++ /dev/null @@ -1,89 +0,0 @@ - - -Javier Alonso Silva -2018-06-18 14:34:31 UTC -database_design - - - -NO -0 -Single Table -0 -Year -9999999 -0 -Third - - -Javier Alonso Silva -2018-06-18 14:34:36 UTC -database_design - - - -true -false -1 -LOGDT024 -256 CHAR -256 CHAR,, - - -Javier Alonso Silva -2018-06-18 14:34:47 UTC -database_design - - - -true -false -1 -LOGDT024 -256 CHAR -256 CHAR,, - - -Javier Alonso Silva -2018-06-18 14:34:59 UTC -database_design - - - -true -false -1 -LOGDT040 -,, - - -Javier Alonso Silva -2018-06-18 14:35:02 UTC -database_design - - - -true -false -1 -LOGDT024 -20 CHAR -20 CHAR,, - - -Javier Alonso Silva -2018-06-18 14:43:05 UTC -46906DFA-66DD-2DD5-790C-7A87FFE7755C -database_design - - - -CAFF56A3-E241-F64F-19BE-CEA2E258C602 -false -1 -LOGDT024 -256 CHAR -,, - - - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/logical/entity/seg_0/312E0255-FAA7-1630-54E5-A4FCB50F6276.xml b/Design/DB_STRUCTURE/database_design/logical/entity/seg_0/312E0255-FAA7-1630-54E5-A4FCB50F6276.xml deleted file mode 100644 index 096bae2..0000000 --- a/Design/DB_STRUCTURE/database_design/logical/entity/seg_0/312E0255-FAA7-1630-54E5-A4FCB50F6276.xml +++ /dev/null @@ -1,89 +0,0 @@ - - -Javier Alonso Silva -2018-06-18 14:29:16 UTC -database_design - - - -NO -0 -Single Table -0 -Year -9999999 -0 -Third - - -Javier Alonso Silva -2018-06-18 14:29:24 UTC -database_design - - - -true -false -1 -LOGDT024 -5 CHAR -5 CHAR,, - - -Javier Alonso Silva -2018-06-18 14:29:37 UTC -database_design - - - -true -false -1 -LOGDT024 -5 CHAR -5 CHAR,, - - -Javier Alonso Silva -2018-06-18 14:29:54 UTC -database_design - - - -true -false -1 -LOGDT024 -10 CHAR -10 CHAR,, - - -Javier Alonso Silva -2018-06-18 14:30:07 UTC -database_design - - - -true -false -1 -LOGDT006 -1 BYTE -1 BYTE,, - - -Javier Alonso Silva -2018-06-18 14:43:31 UTC -C49FD692-24A0-3030-2280-A4D5B8CDFC01 -database_design - - - -8775EFB1-2319-5282-E470-92105C133D68 -false -1 -LOGDT011 -,, - - - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/logical/entity/seg_0/52FEBBBF-C76E-AEF4-45C5-3341E59BD946.xml b/Design/DB_STRUCTURE/database_design/logical/entity/seg_0/52FEBBBF-C76E-AEF4-45C5-3341E59BD946.xml deleted file mode 100644 index 7392b41..0000000 --- a/Design/DB_STRUCTURE/database_design/logical/entity/seg_0/52FEBBBF-C76E-AEF4-45C5-3341E59BD946.xml +++ /dev/null @@ -1,112 +0,0 @@ - - -Javier Alonso Silva -2018-06-18 14:37:34 UTC -database_design - - - -NO -0 -Single Table -0 -Year -9999999 -0 -Third - - -Javier Alonso Silva -2018-06-23 10:18:07 UTC -database_design - - - -false -1 -LOGDT024 -256 CHAR -256 CHAR,, - - -Javier Alonso Silva -2018-06-18 14:37:39 UTC -database_design - - - -false -1 -LOGDT024 -256 CHAR -256 CHAR,, - - -Javier Alonso Silva -2018-06-18 14:38:11 UTC -database_design - - - -true -false -1 -LOGDT011 -,, - - -Javier Alonso Silva -2018-06-18 14:39:24 UTC -database_design - - - -true -false -1 -LOGDT011 -,, - - -Javier Alonso Silva -2018-06-20 19:10:08 UTC -database_design - - - -true -false -1 -LOGDT011 -,, - - -Javier Alonso Silva -2018-06-20 19:10:24 UTC -database_design - - - -true -false -1 -LOGDT011 -,, - - - - -Javier Alonso Silva -2018-06-18 14:38:08 UTC -database_design -false - - - -true - -ADCC2E08-E4C7-1BEB-5C48-EFD99B682848 - - - - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/logical/entity/seg_0/96125017-F1D2-153D-CBAC-D12E0939CF4E.xml b/Design/DB_STRUCTURE/database_design/logical/entity/seg_0/96125017-F1D2-153D-CBAC-D12E0939CF4E.xml deleted file mode 100644 index 8558eb3..0000000 --- a/Design/DB_STRUCTURE/database_design/logical/entity/seg_0/96125017-F1D2-153D-CBAC-D12E0939CF4E.xml +++ /dev/null @@ -1,86 +0,0 @@ - - -Javier Alonso Silva -2018-06-18 14:28:40 UTC -database_design - - - -NO -0 -Single Table -0 -Year -9999999 -0 -Third - - -Javier Alonso Silva -2018-06-18 14:28:44 UTC -database_design - - - -false -1 -LOGDT011 -,, - - -Javier Alonso Silva -2018-06-18 14:28:57 UTC -database_design - - - -true -false -1 -LOGDT024 -45 CHAR -45 CHAR,, - - -Javier Alonso Silva -2018-06-18 14:29:07 UTC -database_design - - - -true -false -1 -LOGDT040 -,, - - -Javier Alonso Silva -2018-06-23 11:11:47 UTC -database_design - - - -true -false -1 -LOGDT008 -,, - - - - -Javier Alonso Silva -2018-06-18 14:28:55 UTC -database_design -false - - - -true - -8775EFB1-2319-5282-E470-92105C133D68 - - - - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/logical/entity/seg_0/B1A287E6-50CA-DB8B-0AAD-60C303A2A402.xml b/Design/DB_STRUCTURE/database_design/logical/entity/seg_0/B1A287E6-50CA-DB8B-0AAD-60C303A2A402.xml deleted file mode 100644 index 8497d69..0000000 --- a/Design/DB_STRUCTURE/database_design/logical/entity/seg_0/B1A287E6-50CA-DB8B-0AAD-60C303A2A402.xml +++ /dev/null @@ -1,73 +0,0 @@ - - -Javier Alonso Silva -2018-06-19 17:05:14 UTC -database_design - - - -NO -0 -Single Table -0 -Year -9999999 -0 -Third - - -Javier Alonso Silva -2018-06-19 17:05:22 UTC -database_design - - - -true -false -1 -LOGDT024 -5 CHAR -5 CHAR,, - - -Javier Alonso Silva -2018-06-19 17:05:36 UTC -database_design - - - -true -false -1 -LOGDT011 -,, - - -Javier Alonso Silva -2018-06-19 17:05:55 UTC -database_design - - - -true -false -1 -LOGDT007 -,, - - -Javier Alonso Silva -2018-06-19 17:07:24 UTC -B934A368-41CA-2247-7505-4DDD707ADAB7 -database_design - - - -8775EFB1-2319-5282-E470-92105C133D68 -false -1 -LOGDT011 -,, - - - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/logical/entity/seg_0/FB782D70-50E0-0A98-4654-5E94050F8458.xml b/Design/DB_STRUCTURE/database_design/logical/entity/seg_0/FB782D70-50E0-0A98-4654-5E94050F8458.xml deleted file mode 100644 index 337593d..0000000 --- a/Design/DB_STRUCTURE/database_design/logical/entity/seg_0/FB782D70-50E0-0A98-4654-5E94050F8458.xml +++ /dev/null @@ -1,114 +0,0 @@ - - -Javier Alonso Silva -2018-06-18 14:30:33 UTC -database_design - - - -NO -0 -Single Table -0 -Year -9999999 -0 -Third - - -Javier Alonso Silva -2018-06-18 14:30:37 UTC -database_design - - - -false -1 -LOGDT024 -256 CHAR -256 CHAR,, - - -Javier Alonso Silva -2018-06-18 14:30:48 UTC -database_design - - - -true -false -1 -LOGDT024 -20 CHAR -20 CHAR,, - - -Javier Alonso Silva -2018-06-18 14:31:00 UTC -database_design - - - -true -false -1 -LOGDT011 -,, - - -Javier Alonso Silva -2018-06-18 14:31:14 UTC -database_design - - - -true -false -1 -LOGDT011 -,, - - -Javier Alonso Silva -2018-06-18 14:31:24 UTC -database_design - - - -true -false -1 -LOGDT011 -,, - - -Javier Alonso Silva -2018-06-18 14:33:59 UTC -database_design - - - -true -false -1 -LOGDT006 -1 BYTE -1 BYTE,, - - - - -Javier Alonso Silva -2018-06-18 14:30:47 UTC -database_design -false - - - -true - -CAFF56A3-E241-F64F-19BE-CEA2E258C602 - - - - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/logical/relation/seg_0/1D1B52B1-8974-5046-5AB7-7AB4BF89C08A.xml b/Design/DB_STRUCTURE/database_design/logical/relation/seg_0/1D1B52B1-8974-5046-5AB7-7AB4BF89C08A.xml deleted file mode 100644 index af3ba67..0000000 --- a/Design/DB_STRUCTURE/database_design/logical/relation/seg_0/1D1B52B1-8974-5046-5AB7-7AB4BF89C08A.xml +++ /dev/null @@ -1,20 +0,0 @@ - - -Javier Alonso Silva -2018-06-18 14:39:41 UTC -database_design - - - -E3C428C4-0B62-6F66-F2BC-DB1AEE9F9400 -2F9B98EF-2E48-6530-04A0-1E62A0B7E323 -false -true -false -* -52FEBBBF-C76E-AEF4-45C5-3341E59BD946 -* -FB782D70-50E0-0A98-4654-5E94050F8458 -true -NO ACTION - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/logical/relation/seg_0/46906DFA-66DD-2DD5-790C-7A87FFE7755C.xml b/Design/DB_STRUCTURE/database_design/logical/relation/seg_0/46906DFA-66DD-2DD5-790C-7A87FFE7755C.xml deleted file mode 100644 index a643608..0000000 --- a/Design/DB_STRUCTURE/database_design/logical/relation/seg_0/46906DFA-66DD-2DD5-790C-7A87FFE7755C.xml +++ /dev/null @@ -1,19 +0,0 @@ - - -Javier Alonso Silva -2018-06-18 14:43:05 UTC -database_design - - - -2F9B98EF-2E48-6530-04A0-1E62A0B7E323 -false -true -false -1 -FB782D70-50E0-0A98-4654-5E94050F8458 -1 -1558C95F-4CEC-1E30-AA15-58B7C6ACD81B -true -CASCADE - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/logical/relation/seg_0/B934A368-41CA-2247-7505-4DDD707ADAB7.xml b/Design/DB_STRUCTURE/database_design/logical/relation/seg_0/B934A368-41CA-2247-7505-4DDD707ADAB7.xml deleted file mode 100644 index 0360a03..0000000 --- a/Design/DB_STRUCTURE/database_design/logical/relation/seg_0/B934A368-41CA-2247-7505-4DDD707ADAB7.xml +++ /dev/null @@ -1,19 +0,0 @@ - - -Javier Alonso Silva -2018-06-19 17:07:24 UTC -database_design - - - -3E09607E-650C-5E05-C7AC-0E839F482CA2 -false -true -false -1 -96125017-F1D2-153D-CBAC-D12E0939CF4E -1 -B1A287E6-50CA-DB8B-0AAD-60C303A2A402 -true -CASCADE - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/logical/relation/seg_0/C49FD692-24A0-3030-2280-A4D5B8CDFC01.xml b/Design/DB_STRUCTURE/database_design/logical/relation/seg_0/C49FD692-24A0-3030-2280-A4D5B8CDFC01.xml deleted file mode 100644 index 08922b3..0000000 --- a/Design/DB_STRUCTURE/database_design/logical/relation/seg_0/C49FD692-24A0-3030-2280-A4D5B8CDFC01.xml +++ /dev/null @@ -1,19 +0,0 @@ - - -Javier Alonso Silva -2018-06-18 14:43:31 UTC -database_design - - - -3E09607E-650C-5E05-C7AC-0E839F482CA2 -false -true -false -1 -96125017-F1D2-153D-CBAC-D12E0939CF4E -1 -312E0255-FAA7-1630-54E5-A4FCB50F6276 -true -CASCADE - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/logical/relation/seg_0/DDBAFE8B-B820-1773-EE96-8B363262CAA9.xml b/Design/DB_STRUCTURE/database_design/logical/relation/seg_0/DDBAFE8B-B820-1773-EE96-8B363262CAA9.xml deleted file mode 100644 index 1f2266b..0000000 --- a/Design/DB_STRUCTURE/database_design/logical/relation/seg_0/DDBAFE8B-B820-1773-EE96-8B363262CAA9.xml +++ /dev/null @@ -1,19 +0,0 @@ - - -Javier Alonso Silva -2018-06-18 14:36:55 UTC -database_design - - - -2F9B98EF-2E48-6530-04A0-1E62A0B7E323 -false -true -false -* -96125017-F1D2-153D-CBAC-D12E0939CF4E -* -FB782D70-50E0-0A98-4654-5E94050F8458 -true -CASCADE - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/logical/subviews/2C149101-C988-9E4D-2C9E-2746FB965570.xml b/Design/DB_STRUCTURE/database_design/logical/subviews/2C149101-C988-9E4D-2C9E-2746FB965570.xml deleted file mode 100644 index e32299d..0000000 --- a/Design/DB_STRUCTURE/database_design/logical/subviews/2C149101-C988-9E4D-2C9E-2746FB965570.xml +++ /dev/null @@ -1,89 +0,0 @@ - - -Javier Alonso Silva -Javier Alonso Silva -2018-06-18 14:24:39 UTC -false -true -false -false -false -false -false --1 -false -1 - - -false - - - -false - - - -false - - - -false - - - -false - - - -false - - - - - -false --16777216 -1 - - - - - - -false --16777216 -1 - - - - - - -false --16777216 -1 - - - - - - -false --16777216 -1 - - - - - - -false --16777216 -1 - - - - - - - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/mapping/DeletedMap_RM351C3A3B-985F-1B54-60FE-A46161E8F350.xml b/Design/DB_STRUCTURE/database_design/mapping/DeletedMap_RM351C3A3B-985F-1B54-60FE-A46161E8F350.xml deleted file mode 100644 index ec75f01..0000000 --- a/Design/DB_STRUCTURE/database_design/mapping/DeletedMap_RM351C3A3B-985F-1B54-60FE-A46161E8F350.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/mapping/DeletedMap_RMC5DFC5DD-35E9-B422-B2BF-B7648E7DE99B.xml b/Design/DB_STRUCTURE/database_design/mapping/DeletedMap_RMC5DFC5DD-35E9-B422-B2BF-B7648E7DE99B.xml deleted file mode 100644 index f06a149..0000000 --- a/Design/DB_STRUCTURE/database_design/mapping/DeletedMap_RMC5DFC5DD-35E9-B422-B2BF-B7648E7DE99B.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/mapping/ExtendedMap.xml b/Design/DB_STRUCTURE/database_design/mapping/ExtendedMap.xml deleted file mode 100644 index 6811f63..0000000 --- a/Design/DB_STRUCTURE/database_design/mapping/ExtendedMap.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/mapping/ExtendedMap_RM351C3A3B-985F-1B54-60FE-A46161E8F350.xml b/Design/DB_STRUCTURE/database_design/mapping/ExtendedMap_RM351C3A3B-985F-1B54-60FE-A46161E8F350.xml deleted file mode 100644 index 7ea5df0..0000000 --- a/Design/DB_STRUCTURE/database_design/mapping/ExtendedMap_RM351C3A3B-985F-1B54-60FE-A46161E8F350.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/mapping/ExtendedMap_RMC5DFC5DD-35E9-B422-B2BF-B7648E7DE99B.xml b/Design/DB_STRUCTURE/database_design/mapping/ExtendedMap_RMC5DFC5DD-35E9-B422-B2BF-B7648E7DE99B.xml deleted file mode 100644 index 2fabce5..0000000 --- a/Design/DB_STRUCTURE/database_design/mapping/ExtendedMap_RMC5DFC5DD-35E9-B422-B2BF-B7648E7DE99B.xml +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -E3C428C4-0B62-6F66-F2BC-DB1AEE9F9400 - - - - - - - - - - - - -3E09607E-650C-5E05-C7AC-0E839F482CA2 - - - - - - - - - - - - - - - - - - - - - - - - - - -2F9B98EF-2E48-6530-04A0-1E62A0B7E323 - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/pm/Objects.local b/Design/DB_STRUCTURE/database_design/pm/Objects.local deleted file mode 100644 index 385decc..0000000 --- a/Design/DB_STRUCTURE/database_design/pm/Objects.local +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/Design/DB_STRUCTURE/database_design/pm/Process Model.xml b/Design/DB_STRUCTURE/database_design/pm/Process Model.xml deleted file mode 100644 index 7811946..0000000 --- a/Design/DB_STRUCTURE/database_design/pm/Process Model.xml +++ /dev/null @@ -1,7 +0,0 @@ - - -Javier Alonso Silva -2018-06-18 14:24:30 UTC -database_design -false - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/rdbms/database_design_RDBMSSites.xml b/Design/DB_STRUCTURE/database_design/rdbms/database_design_RDBMSSites.xml deleted file mode 100644 index 42c1454..0000000 --- a/Design/DB_STRUCTURE/database_design/rdbms/database_design_RDBMSSites.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B.xml b/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B.xml deleted file mode 100644 index 0cdf79c..0000000 --- a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B.xml +++ /dev/null @@ -1,8 +0,0 @@ - - -Javier Alonso Silva -2018-06-18 14:51:04 UTC -database_design -false -32076570-2523-435C-2E92-BF29817DFF70 - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/DDLSelection.local b/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/DDLSelection.local deleted file mode 100644 index 5a4a6b6..0000000 --- a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/DDLSelection.local +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/Diagrams.local b/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/Diagrams.local deleted file mode 100644 index 11539ab..0000000 --- a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/Diagrams.local +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/Objects.local b/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/Objects.local deleted file mode 100644 index afb34a8..0000000 --- a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/Objects.local +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/foreignkey/seg_0/14761BF2-0284-F09E-1C36-5AD59C18B84E.xml b/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/foreignkey/seg_0/14761BF2-0284-F09E-1C36-5AD59C18B84E.xml deleted file mode 100644 index 5e7fa5f..0000000 --- a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/foreignkey/seg_0/14761BF2-0284-F09E-1C36-5AD59C18B84E.xml +++ /dev/null @@ -1,17 +0,0 @@ - - -Javier Alonso Silva -2018-06-18 14:53:19 UTC -DDBAFE8B-B820-1773-EE96-8B363262CAA9 -database_design -Music -CASCADE -25DE0936-5106-79A2-1678-9EAA1E0DA843 -5EE86BBE-3C43-6A0D-DECB-B287A7214DD4 -5EE86BBE-3C43-6A0D-DECB-B287A7214DD4 -true -file_id -true -false -true - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/foreignkey/seg_0/518E00B2-30C8-083A-0841-D61034BE188E.xml b/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/foreignkey/seg_0/518E00B2-30C8-083A-0841-D61034BE188E.xml deleted file mode 100644 index 9295929..0000000 --- a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/foreignkey/seg_0/518E00B2-30C8-083A-0841-D61034BE188E.xml +++ /dev/null @@ -1,17 +0,0 @@ - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -1D1B52B1-8974-5046-5AB7-7AB4BF89C08A -database_design -Playlist -NO ACTION -0AF231FE-3CA2-BFD0-E42B-0DFDC72D4D26 -0AAA742E-85E9-ABBB-3457-D0D166522D31 -0AAA742E-85E9-ABBB-3457-D0D166522D31 -true -playlist_id -true -false -true - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/foreignkey/seg_0/51EE3780-3B5D-E1A1-65B0-7ED699DD5948.xml b/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/foreignkey/seg_0/51EE3780-3B5D-E1A1-65B0-7ED699DD5948.xml deleted file mode 100644 index 10d5e7a..0000000 --- a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/foreignkey/seg_0/51EE3780-3B5D-E1A1-65B0-7ED699DD5948.xml +++ /dev/null @@ -1,17 +0,0 @@ - - -Javier Alonso Silva -2018-06-19 17:07:52 UTC -B934A368-41CA-2247-7505-4DDD707ADAB7 -database_design -User -CASCADE -175D64CD-6D93-E0AE-DD13-FF75CAB2DC92 -D02538CD-C7A9-1C9E-7706-9BD9CDCB8B5D -D02538CD-C7A9-1C9E-7706-9BD9CDCB8B5D -true -user_id -true -false -true - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/foreignkey/seg_0/6A45C1C6-8C3B-317C-9221-BA841A05B730.xml b/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/foreignkey/seg_0/6A45C1C6-8C3B-317C-9221-BA841A05B730.xml deleted file mode 100644 index 6eb319e..0000000 --- a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/foreignkey/seg_0/6A45C1C6-8C3B-317C-9221-BA841A05B730.xml +++ /dev/null @@ -1,17 +0,0 @@ - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -46906DFA-66DD-2DD5-790C-7A87FFE7755C -database_design -Music -CASCADE -25DE0936-5106-79A2-1678-9EAA1E0DA843 -5EE86BBE-3C43-6A0D-DECB-B287A7214DD4 -5EE86BBE-3C43-6A0D-DECB-B287A7214DD4 -true -file_id -true -false -true - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/foreignkey/seg_0/6AA622A5-D308-C63C-2AF6-730CF06EBF34.xml b/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/foreignkey/seg_0/6AA622A5-D308-C63C-2AF6-730CF06EBF34.xml deleted file mode 100644 index 79bad92..0000000 --- a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/foreignkey/seg_0/6AA622A5-D308-C63C-2AF6-730CF06EBF34.xml +++ /dev/null @@ -1,17 +0,0 @@ - - -Javier Alonso Silva -2018-06-18 14:53:19 UTC -DDBAFE8B-B820-1773-EE96-8B363262CAA9 -database_design -User -CASCADE -175D64CD-6D93-E0AE-DD13-FF75CAB2DC92 -D02538CD-C7A9-1C9E-7706-9BD9CDCB8B5D -D02538CD-C7A9-1C9E-7706-9BD9CDCB8B5D -true -user_id -true -false -true - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/foreignkey/seg_0/B59DC6EC-C75B-86D4-AFA3-705630B49873.xml b/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/foreignkey/seg_0/B59DC6EC-C75B-86D4-AFA3-705630B49873.xml deleted file mode 100644 index ba83f9b..0000000 --- a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/foreignkey/seg_0/B59DC6EC-C75B-86D4-AFA3-705630B49873.xml +++ /dev/null @@ -1,17 +0,0 @@ - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -1D1B52B1-8974-5046-5AB7-7AB4BF89C08A -database_design -Music -NO ACTION -25DE0936-5106-79A2-1678-9EAA1E0DA843 -5EE86BBE-3C43-6A0D-DECB-B287A7214DD4 -5EE86BBE-3C43-6A0D-DECB-B287A7214DD4 -true -file_id -true -false -true - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/foreignkey/seg_0/C7DC4550-6D2C-B38B-5C23-5E37D6D8832D.xml b/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/foreignkey/seg_0/C7DC4550-6D2C-B38B-5C23-5E37D6D8832D.xml deleted file mode 100644 index 85fe559..0000000 --- a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/foreignkey/seg_0/C7DC4550-6D2C-B38B-5C23-5E37D6D8832D.xml +++ /dev/null @@ -1,17 +0,0 @@ - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -C49FD692-24A0-3030-2280-A4D5B8CDFC01 -database_design -User -CASCADE -175D64CD-6D93-E0AE-DD13-FF75CAB2DC92 -D02538CD-C7A9-1C9E-7706-9BD9CDCB8B5D -D02538CD-C7A9-1C9E-7706-9BD9CDCB8B5D -true -user_id -true -false -true - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/subviews/DDF9FCBE-2830-5AB6-3DD0-B2CFAA840673.xml b/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/subviews/DDF9FCBE-2830-5AB6-3DD0-B2CFAA840673.xml deleted file mode 100644 index 4dc1720..0000000 --- a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/subviews/DDF9FCBE-2830-5AB6-3DD0-B2CFAA840673.xml +++ /dev/null @@ -1,115 +0,0 @@ - - -Javier Alonso Silva -Javier Alonso Silva -2018-06-18 14:51:04 UTC -false -true -false -false -false -false -false --1 -false -1 - - -false - - - -false - - - -false - - - -false - - - -false - - - -false - - - -false - - - -false - - - - - -false --16777216 -1 - - - - - - -false --16777216 -1 - - - - - - -false --16777216 -1 - - - - - - -false --16777216 -1 - - - - - - -false --16777216 -1 - - - - - - -false --16777216 -1 - - - - - - -false --16777216 -1 - - - - - - - \ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/table/seg_0/0AF231FE-3CA2-BFD0-E42B-0DFDC72D4D26.xml b/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/table/seg_0/0AF231FE-3CA2-BFD0-E42B-0DFDC72D4D26.xml deleted file mode 100644 index 6fbfb7e..0000000 --- a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/table/seg_0/0AF231FE-3CA2-BFD0-E42B-0DFDC72D4D26.xml +++ /dev/null @@ -1,95 +0,0 @@ - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -52FEBBBF-C76E-AEF4-45C5-3341E59BD946 -database_design -false -true -true - - -Javier Alonso Silva -2018-06-23 10:17:02 UTC -database_design -false -1 -LOGDT024 -256 CHAR -256 CHAR,, -false - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -16C788DC-D5DE-47B4-78C1-EA4DE822865E -database_design -false -1 -LOGDT024 -256 CHAR -256 CHAR,, -false - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -50EBAA05-F745-2124-1987-2152ACF6FF08 -database_design -true -false -1 -LOGDT011 -,, -false - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -41476BC0-DA37-E595-3F64-45358C275271 -database_design -true -false -1 -LOGDT011 -,, -false - - -Javier Alonso Silva -2018-06-23 10:17:02 UTC -database_design -true -false -1 -LOGDT011 -,, -false - - -Javier Alonso Silva -2018-06-23 10:17:02 UTC -database_design -true -false -1 -LOGDT011 -,, -false - - - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -E3C428C4-0B62-6F66-F2BC-DB1AEE9F9400 -database_design -true -Primary Constraint -false - - - - - -
\ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/table/seg_0/1243C675-86A2-977F-2EFA-8F6C72D2CB26.xml b/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/table/seg_0/1243C675-86A2-977F-2EFA-8F6C72D2CB26.xml deleted file mode 100644 index a756e91..0000000 --- a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/table/seg_0/1243C675-86A2-977F-2EFA-8F6C72D2CB26.xml +++ /dev/null @@ -1,88 +0,0 @@ - - -Javier Alonso Silva -2018-06-19 17:07:52 UTC -B1A287E6-50CA-DB8B-0AAD-60C303A2A402 -database_design -false -true -true - - -Javier Alonso Silva -2018-06-19 17:07:52 UTC -89D674D7-31F9-D93D-73E0-665EFF65C20A -database_design -true -false -1 -LOGDT024 -5 CHAR -5 CHAR,, -false - - -Javier Alonso Silva -2018-06-19 17:07:52 UTC -19C812C7-2829-FCC6-7AB0-8EF0080E3DF5 -database_design -true -false -1 -LOGDT011 -,, -false - - -Javier Alonso Silva -2018-06-19 17:07:52 UTC -E22158FC-409E-A487-CC46-78530525C255 -database_design -true -false -1 -LOGDT007 -,, -false - - -Javier Alonso Silva -2018-06-19 17:07:52 UTC -0C4521CC-B720-4EEA-EF48-2AB477F192BB -database_design -false -1 -LOGDT011 -,, -false -false - - - - - - - -Javier Alonso Silva -2018-06-19 17:07:52 UTC -database_design -Unique Plain Index -false -B934A368-41CA-2247-7505-4DDD707ADAB7 - - - - - -Javier Alonso Silva -2018-06-19 17:07:52 UTC -B934A368-41CA-2247-7505-4DDD707ADAB7 -database_design -Foreign Key -false - - - - - -
\ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/table/seg_0/175D64CD-6D93-E0AE-DD13-FF75CAB2DC92.xml b/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/table/seg_0/175D64CD-6D93-E0AE-DD13-FF75CAB2DC92.xml deleted file mode 100644 index b0a110b..0000000 --- a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/table/seg_0/175D64CD-6D93-E0AE-DD13-FF75CAB2DC92.xml +++ /dev/null @@ -1,73 +0,0 @@ - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -96125017-F1D2-153D-CBAC-D12E0939CF4E -database_design -false -true -true - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -8775EFB1-2319-5282-E470-92105C133D68 -database_design -false -1 -LOGDT011 -,, -false - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -DD1E5201-1D06-B0BD-F764-99D672888063 -database_design -true -false -1 -LOGDT024 -45 CHAR -45 CHAR,, -false - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -E8A2F3A1-63F6-7D92-7D9A-B9668238C030 -database_design -true -false -1 -LOGDT040 -,, -false - - -Javier Alonso Silva -2018-06-23 11:12:16 UTC -database_design -true -false -1 -LOGDT008 -,, -false - - - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -3E09607E-650C-5E05-C7AC-0E839F482CA2 -database_design -true -Primary Constraint -false - - - - - -
\ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/table/seg_0/25DE0936-5106-79A2-1678-9EAA1E0DA843.xml b/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/table/seg_0/25DE0936-5106-79A2-1678-9EAA1E0DA843.xml deleted file mode 100644 index b47beed..0000000 --- a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/table/seg_0/25DE0936-5106-79A2-1678-9EAA1E0DA843.xml +++ /dev/null @@ -1,100 +0,0 @@ - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -FB782D70-50E0-0A98-4654-5E94050F8458 -database_design -false -true -true - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -CAFF56A3-E241-F64F-19BE-CEA2E258C602 -database_design -false -1 -LOGDT024 -256 CHAR -256 CHAR,, -false - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -F8C2F601-3EC1-B326-E4FF-67F526339C68 -database_design -true -false -1 -LOGDT024 -20 CHAR -20 CHAR,, -false - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -B61AEEA2-7623-7334-D69C-F52A0DCF68A1 -database_design -true -false -1 -LOGDT011 -,, -false - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -5AEEEE54-E69D-8679-E7E7-646D336C8773 -database_design -true -false -1 -LOGDT011 -,, -false - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -571F95C4-86B3-8290-242D-003807560AFA -database_design -true -false -1 -LOGDT011 -,, -false - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -1017AB39-0480-C236-5621-1E00FD454B4C -database_design -true -false -1 -LOGDT006 -1 BYTE -1 BYTE,, -false - - - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -2F9B98EF-2E48-6530-04A0-1E62A0B7E323 -database_design -true -Primary Constraint -false - - - - - -
\ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/table/seg_0/47A181FD-9D20-6987-2EAE-0B7F53C88FB3.xml b/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/table/seg_0/47A181FD-9D20-6987-2EAE-0B7F53C88FB3.xml deleted file mode 100644 index 72c5915..0000000 --- a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/table/seg_0/47A181FD-9D20-6987-2EAE-0B7F53C88FB3.xml +++ /dev/null @@ -1,77 +0,0 @@ - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -database_design -false -true -true - - -Javier Alonso Silva -2018-06-23 10:17:02 UTC -database_design -false -1 -LOGDT024 -256 CHAR -,, -false -false - - - - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -database_design -false -1 -LOGDT024 -256 CHAR -,, -false -false - - - - - - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -database_design -true -Primary Constraint -false - - - - - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -1D1B52B1-8974-5046-5AB7-7AB4BF89C08A -database_design -Foreign Key -false - - - - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -1D1B52B1-8974-5046-5AB7-7AB4BF89C08A -database_design -Foreign Key -false - - - - - -
\ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/table/seg_0/D088A558-CA22-9A96-F938-4F7712E4AEF1.xml b/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/table/seg_0/D088A558-CA22-9A96-F938-4F7712E4AEF1.xml deleted file mode 100644 index 55fbaaa..0000000 --- a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/table/seg_0/D088A558-CA22-9A96-F938-4F7712E4AEF1.xml +++ /dev/null @@ -1,103 +0,0 @@ - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -312E0255-FAA7-1630-54E5-A4FCB50F6276 -database_design -false -true -true - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -2DFD054F-D34B-E405-1BE4-892DD74BA271 -database_design -true -false -1 -LOGDT024 -5 CHAR -5 CHAR,, -false - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -DA295574-77E1-2B18-8034-394D422AFB44 -database_design -true -false -1 -LOGDT024 -5 CHAR -5 CHAR,, -false - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -6A072B91-6717-56AE-E792-D79219943063 -database_design -true -false -1 -LOGDT024 -10 CHAR -10 CHAR,, -false - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -861DF039-AE33-7187-ED33-DE8065B1D145 -database_design -true -false -1 -LOGDT006 -1 BYTE -1 BYTE,, -false - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -41D91414-1277-D3D5-F7EF-FBB7131C89A4 -database_design -false -1 -LOGDT011 -,, -false -false - - - - - - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -database_design -Unique Plain Index -false -C49FD692-24A0-3030-2280-A4D5B8CDFC01 - - - - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -C49FD692-24A0-3030-2280-A4D5B8CDFC01 -database_design -Foreign Key -false - - - - - -
\ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/table/seg_0/D1128F38-5763-FC3D-4FB1-14F78EDBE4CB.xml b/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/table/seg_0/D1128F38-5763-FC3D-4FB1-14F78EDBE4CB.xml deleted file mode 100644 index a07d74f..0000000 --- a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/table/seg_0/D1128F38-5763-FC3D-4FB1-14F78EDBE4CB.xml +++ /dev/null @@ -1,103 +0,0 @@ - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -1558C95F-4CEC-1E30-AA15-58B7C6ACD81B -database_design -false -true -true - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -49089203-E88B-9C71-4BAB-AA5574F6A82F -database_design -true -false -1 -LOGDT024 -256 CHAR -256 CHAR,, -false - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -312A4237-841B-F0D6-219B-47FD4C4AA4AD -database_design -true -false -1 -LOGDT024 -256 CHAR -256 CHAR,, -false - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -74912055-663D-B1D1-BE49-9179459CBBCB -database_design -true -false -1 -LOGDT040 -,, -false - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -1E9D1478-D7E1-147D-DAFA-C42220EE51DC -database_design -true -false -1 -LOGDT024 -20 CHAR -20 CHAR,, -false - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -BA20C781-6605-F30A-9E03-F6286452BDDC -database_design -false -1 -LOGDT024 -256 CHAR -,, -false -false - - - - - - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -database_design -Unique Plain Index -false -46906DFA-66DD-2DD5-790C-7A87FFE7755C - - - - - -Javier Alonso Silva -2018-06-18 14:51:13 UTC -46906DFA-66DD-2DD5-790C-7A87FFE7755C -database_design -Foreign Key -false - - - - - -
\ No newline at end of file diff --git a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/table/seg_0/F0AD5A40-5659-C806-BEA1-595FD0DB5F39.xml b/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/table/seg_0/F0AD5A40-5659-C806-BEA1-595FD0DB5F39.xml deleted file mode 100644 index 6208457..0000000 --- a/Design/DB_STRUCTURE/database_design/rel/C5DFC5DD-B7648E7DE99B/table/seg_0/F0AD5A40-5659-C806-BEA1-595FD0DB5F39.xml +++ /dev/null @@ -1,76 +0,0 @@ - - -Javier Alonso Silva -2018-06-18 14:53:19 UTC -database_design -false -true -true - - -Javier Alonso Silva -2018-06-18 14:53:19 UTC -database_design -false -1 -LOGDT011 -,, -false -false - - - - - -Javier Alonso Silva -2018-06-18 14:53:19 UTC -database_design -false -1 -LOGDT024 -256 CHAR -,, -false -false - - - - - - - -Javier Alonso Silva -2018-06-18 14:53:19 UTC -database_design -true -Primary Constraint -false - - - - - - -Javier Alonso Silva -2018-06-18 14:53:19 UTC -DDBAFE8B-B820-1773-EE96-8B363262CAA9 -database_design -Foreign Key -false - - - - - -Javier Alonso Silva -2018-06-18 14:53:19 UTC -DDBAFE8B-B820-1773-EE96-8B363262CAA9 -database_design -Foreign Key -false - - - - - -
\ No newline at end of file diff --git a/Design/DB_STRUCTURE/db_script.cql b/Design/DB_STRUCTURE/db_script.cql deleted file mode 100644 index 0445840..0000000 --- a/Design/DB_STRUCTURE/db_script.cql +++ /dev/null @@ -1,10 +0,0 @@ -CREATE KEYSPACE IF NOT EXISTS YouTubeMDApp WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 3}; -USE YouTubeMDApp; -CREATE TABLE IF NOT EXISTS history (user_id int NOT NULL, file_id varchar NOT NULL); -CREATE TABLE IF NOT EXISTS metadata (title varchar, artist varchar, cover text, song_duration duration, music_file_id varchar NOT NULL, PRIMARY KEY (music_file_id)); -CREATE TABLE IF NOT EXISTS music (file_id varchar NOT NULL,video_id varchar, audio_quality int, audio_format int, times_requested counter, is_metadata_by_user boolean, PRIMARY KEY (file_id)); -CREATE TABLE IF NOT EXISTS playlist (playlist_unique_id UUID NOT NULL, playlist_id varchar NOT NULL, playlist_quality int, playlist_format int, number_elements int, times_requested counter, PRIMARY KEY (playlist_unique_id)); -CREATE TABLE IF NOT EXISTS playlist_has_music (playlist_unique_id UUID NOT NULL, music_file_id varchar NOT NULL); -CREATE TABLE IF NOT EXISTS preferences (audio_quality varchar, audio_format varchar, os varchar, should_ask_metadata boolean, user_id int NOT NULL, PRIMARY KEY (user_id)); -CREATE TABLE IF NOT EXISTS "User" (user_id int NOT NULL, username varchar, name text, first_use datetime, PRIMARY KEY (user_id)); -CREATE TABLE IF NOT EXISTS Statistics (lang varchar, downloads counter, last_time_active datetime, user_id int NOT NULL, PRIMARY KEY(user_id)); \ No newline at end of file diff --git a/Design/DB_STRUCTURE/db_script.ddl b/Design/DB_STRUCTURE/db_script.ddl deleted file mode 100644 index a2c2827..0000000 --- a/Design/DB_STRUCTURE/db_script.ddl +++ /dev/null @@ -1,147 +0,0 @@ --- Generado por Oracle SQL Developer Data Modeler 18.1.0.082.1035 --- en: 2018-06-18 16:59:15 CEST --- sitio: Oracle Database 11g --- tipo: Oracle Database 11g - - - -CREATE TABLE history ( - user_user_id INTEGER NOT NULL, - music_file_id VARCHAR2(256 CHAR) NOT NULL -); - -ALTER TABLE history ADD CONSTRAINT history_pk PRIMARY KEY ( user_user_id, - music_file_id ); - -CREATE TABLE metadata ( - title VARCHAR2(256 CHAR), - artist VARCHAR2(256 CHAR), - cover CLOB, - duration VARCHAR2(20 CHAR), - music_file_id VARCHAR2(256 CHAR) NOT NULL -); - -CREATE UNIQUE INDEX metadata__idx ON - metadata ( - music_file_id - ASC ); - -CREATE TABLE music ( - file_id VARCHAR2(256 CHAR) NOT NULL, - video_id VARCHAR2(20 CHAR), - audio_quality INTEGER, - audio_format INTEGER, - times_requested INTEGER, - is_metadata_by_user CHAR(1) -); - -ALTER TABLE music ADD CONSTRAINT music_pk PRIMARY KEY ( file_id ); - -CREATE TABLE playlist ( - playlist_id VARCHAR2(256 CHAR) NOT NULL, - number_elements INTEGER, - times_requested INTEGER -); - -ALTER TABLE playlist ADD CONSTRAINT playlist_pk PRIMARY KEY ( playlist_id ); - -CREATE TABLE playlist_has_music ( - playlist_playlist_id VARCHAR2(256 CHAR) NOT NULL, - music_file_id VARCHAR2(256 CHAR) NOT NULL -); - -ALTER TABLE playlist_has_music ADD CONSTRAINT playlist_has_music_pk PRIMARY KEY ( playlist_playlist_id, - music_file_id ); - -CREATE TABLE preferences ( - audio_quality VARCHAR2(5 CHAR), - audio_format VARCHAR2(5 CHAR), - os VARCHAR2(10 CHAR), - should_ask_metadata CHAR(1), - user_user_id INTEGER NOT NULL -); - -CREATE UNIQUE INDEX preferences__idx ON - preferences ( - user_user_id - ASC ); - -CREATE TABLE "User" ( - user_id INTEGER NOT NULL, - username VARCHAR2(45 CHAR), - name CLOB -); - -ALTER TABLE "User" ADD CONSTRAINT user_pk PRIMARY KEY ( user_id ); - -ALTER TABLE history - ADD CONSTRAINT history_music_fk FOREIGN KEY ( music_file_id ) - REFERENCES music ( file_id ) - ON DELETE CASCADE; - -ALTER TABLE history - ADD CONSTRAINT history_user_fk FOREIGN KEY ( user_user_id ) - REFERENCES "User" ( user_id ) - ON DELETE CASCADE; - -ALTER TABLE metadata - ADD CONSTRAINT metadata_music_fk FOREIGN KEY ( music_file_id ) - REFERENCES music ( file_id ) - ON DELETE CASCADE; - -ALTER TABLE playlist_has_music - ADD CONSTRAINT playlist_has_music_music_fk FOREIGN KEY ( music_file_id ) - REFERENCES music ( file_id ); - -ALTER TABLE playlist_has_music - ADD CONSTRAINT playlist_has_music_playlist_fk FOREIGN KEY ( playlist_playlist_id ) - REFERENCES playlist ( playlist_id ); - -ALTER TABLE preferences - ADD CONSTRAINT preferences_user_fk FOREIGN KEY ( user_user_id ) - REFERENCES "User" ( user_id ) - ON DELETE CASCADE; - - - --- Informe de Resumen de Oracle SQL Developer Data Modeler: --- --- CREATE TABLE 7 --- CREATE INDEX 2 --- ALTER TABLE 11 --- CREATE VIEW 0 --- ALTER VIEW 0 --- CREATE PACKAGE 0 --- CREATE PACKAGE BODY 0 --- CREATE PROCEDURE 0 --- CREATE FUNCTION 0 --- CREATE TRIGGER 0 --- ALTER TRIGGER 0 --- CREATE COLLECTION TYPE 0 --- CREATE STRUCTURED TYPE 0 --- CREATE STRUCTURED TYPE BODY 0 --- CREATE CLUSTER 0 --- CREATE CONTEXT 0 --- CREATE DATABASE 0 --- CREATE DIMENSION 0 --- CREATE DIRECTORY 0 --- CREATE DISK GROUP 0 --- CREATE ROLE 0 --- CREATE ROLLBACK SEGMENT 0 --- CREATE SEQUENCE 0 --- CREATE MATERIALIZED VIEW 0 --- CREATE SYNONYM 0 --- CREATE TABLESPACE 0 --- CREATE USER 0 --- --- DROP TABLESPACE 0 --- DROP DATABASE 0 --- --- REDACTION POLICY 0 --- --- ORDS DROP SCHEMA 0 --- ORDS ENABLE SCHEMA 0 --- ORDS ENABLE OBJECT 0 --- --- ERRORS 0 --- WARNINGS 0 diff --git a/Design/Database/database_model.mwb b/Design/Database/database_model.mwb new file mode 100644 index 0000000000000000000000000000000000000000..03ffdc9bb922275c2b015c3409d4221d02103f06 GIT binary patch literal 12708 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 G;{O7HgXAgz literal 0 HcmV?d00001 diff --git a/Design/Database/database_model.mwb.bak b/Design/Database/database_model.mwb.bak new file mode 100644 index 0000000000000000000000000000000000000000..ea968e37651cc04f834cccd1150691da6843ffc2 GIT binary patch literal 12728 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 So%ukX_O33jMy9qVi2nz&rvkMA literal 0 HcmV?d00001 diff --git a/Design/Database/generated_sql_file.sql b/Design/Database/generated_sql_file.sql new file mode 100644 index 0000000..e65336e --- /dev/null +++ b/Design/Database/generated_sql_file.sql @@ -0,0 +1,251 @@ +-- MySQL Script generated by MySQL Workbench +-- lun 22 jul 2019 14:28:48 CEST +-- Model: New Model Version: 1.0 +-- MySQL Workbench Forward Engineering + +SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; +SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; +SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'; + +-- ----------------------------------------------------- +-- Schema youtubemd +-- ----------------------------------------------------- + +-- ----------------------------------------------------- +-- Schema youtubemd +-- ----------------------------------------------------- +CREATE SCHEMA IF NOT EXISTS `youtubemd` DEFAULT CHARACTER SET utf8mb4 ; +SHOW WARNINGS; +USE `youtubemd` ; + +-- ----------------------------------------------------- +-- Table `youtubemd`.`User` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `youtubemd`.`User` ( + `id` INT(64) NOT NULL DEFAULT 0, + `name` VARCHAR(45) NULL DEFAULT 'User', + `surname` VARCHAR(45) NULL, + `username` VARCHAR(45) NULL, + `lastSeen` DATETIME NOT NULL, + `firstUsage` DATETIME NOT NULL, + PRIMARY KEY (`id`)) +ENGINE = InnoDB +CHECKSUM = 1 +PACK_KEYS = 1; + +SHOW WARNINGS; +CREATE UNIQUE INDEX `id_UNIQUE` ON `youtubemd`.`User` (`id` ASC) VISIBLE; + +SHOW WARNINGS; +CREATE UNIQUE INDEX `username_UNIQUE` ON `youtubemd`.`User` (`username` ASC) VISIBLE; + +SHOW WARNINGS; + +-- ----------------------------------------------------- +-- Table `youtubemd`.`Preferences` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `youtubemd`.`Preferences` ( + `language` VARCHAR(3) NOT NULL DEFAULT 'en', + `audioQuality` ENUM('320k', '256k', '128k') NOT NULL DEFAULT '128k', + `audioSampling` ENUM('44000', '48000') NOT NULL DEFAULT '44000', + `sendSongLinks` TINYINT NOT NULL DEFAULT 0, + `User_id` INT(64) NOT NULL, + PRIMARY KEY (`User_id`), + CONSTRAINT `fk_Preferences_User` + FOREIGN KEY (`User_id`) + REFERENCES `youtubemd`.`User` (`id`) + ON DELETE NO ACTION + ON UPDATE NO ACTION) +ENGINE = InnoDB +CHECKSUM = 1; + +SHOW WARNINGS; + +-- ----------------------------------------------------- +-- Table `youtubemd`.`Metadata` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `youtubemd`.`Metadata` ( + `idMetadata` INT NOT NULL AUTO_INCREMENT, + `title` VARCHAR(100) NOT NULL, + `artist` VARCHAR(60) NOT NULL, + `cover` BLOB NOT NULL, + `duration` INT NULL, + `customMetadata` TINYINT NOT NULL DEFAULT 0, + PRIMARY KEY (`idMetadata`)) +ENGINE = InnoDB +AUTO_INCREMENT = 0 +CHECKSUM = 1; + +SHOW WARNINGS; + +-- ----------------------------------------------------- +-- Table `youtubemd`.`VideoInformation` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `youtubemd`.`VideoInformation` ( + `id` VARCHAR(11) NOT NULL, + `title` VARCHAR(100) NOT NULL, + `channel` VARCHAR(60) NOT NULL, + PRIMARY KEY (`id`)) +ENGINE = InnoDB +CHECKSUM = 1; + +SHOW WARNINGS; +CREATE UNIQUE INDEX `id_UNIQUE` ON `youtubemd`.`VideoInformation` (`id` ASC) VISIBLE; + +SHOW WARNINGS; + +-- ----------------------------------------------------- +-- Table `youtubemd`.`DownloadInformation` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `youtubemd`.`DownloadInformation` ( + `file_id` VARCHAR(50) NOT NULL, + `audioQuality` ENUM('320k', '256k', '128k') NOT NULL, + `audioSampling` ENUM('44000', '48000') NULL, + `Metadata_idMetadata` INT NOT NULL, + `VideoInformation_id` VARCHAR(11) NOT NULL, + PRIMARY KEY (`file_id`, `Metadata_idMetadata`, `VideoInformation_id`), + CONSTRAINT `fk_DownloadInformation_Metadata1` + FOREIGN KEY (`Metadata_idMetadata`) + REFERENCES `youtubemd`.`Metadata` (`idMetadata`) + ON DELETE NO ACTION + ON UPDATE NO ACTION, + CONSTRAINT `fk_DownloadInformation_VideoInformation1` + FOREIGN KEY (`VideoInformation_id`) + REFERENCES `youtubemd`.`VideoInformation` (`id`) + ON DELETE NO ACTION + ON UPDATE NO ACTION) +ENGINE = InnoDB +CHECKSUM = 1; + +SHOW WARNINGS; +CREATE UNIQUE INDEX `file_id_UNIQUE` ON `youtubemd`.`DownloadInformation` (`file_id` ASC) VISIBLE; + +SHOW WARNINGS; +CREATE INDEX `fk_DownloadInformation_Metadata1_idx` ON `youtubemd`.`DownloadInformation` (`Metadata_idMetadata` ASC) VISIBLE; + +SHOW WARNINGS; +CREATE INDEX `fk_DownloadInformation_VideoInformation1_idx` ON `youtubemd`.`DownloadInformation` (`VideoInformation_id` ASC) VISIBLE; + +SHOW WARNINGS; + +-- ----------------------------------------------------- +-- Table `youtubemd`.`History` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `youtubemd`.`History` ( + `User_id` INT(64) NOT NULL, + `DownloadInformation_file_id` VARCHAR(50) NOT NULL, + PRIMARY KEY (`User_id`, `DownloadInformation_file_id`), + CONSTRAINT `fk_History_User1` + FOREIGN KEY (`User_id`) + REFERENCES `youtubemd`.`User` (`id`) + ON DELETE NO ACTION + ON UPDATE NO ACTION, + CONSTRAINT `fk_History_DownloadInformation1` + FOREIGN KEY (`DownloadInformation_file_id`) + REFERENCES `youtubemd`.`DownloadInformation` (`file_id`) + ON DELETE NO ACTION + ON UPDATE NO ACTION) +ENGINE = InnoDB +CHECKSUM = 1; + +SHOW WARNINGS; +CREATE INDEX `fk_History_DownloadInformation1_idx` ON `youtubemd`.`History` (`DownloadInformation_file_id` ASC) VISIBLE; + +SHOW WARNINGS; + +-- ----------------------------------------------------- +-- Table `youtubemd`.`VideoStatistics` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `youtubemd`.`VideoStatistics` ( + `timesRequested` INT NOT NULL DEFAULT 0, + `VideoInformation_id` VARCHAR(11) NOT NULL, + PRIMARY KEY (`VideoInformation_id`), + CONSTRAINT `fk_VideoStatistics_VideoInformation1` + FOREIGN KEY (`VideoInformation_id`) + REFERENCES `youtubemd`.`VideoInformation` (`id`) + ON DELETE NO ACTION + ON UPDATE NO ACTION) +ENGINE = InnoDB +CHECKSUM = 1; + +SHOW WARNINGS; + +-- ----------------------------------------------------- +-- Table `youtubemd`.`DownloadStatistics` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `youtubemd`.`DownloadStatistics` ( + `timesRequested` INT NOT NULL DEFAULT 0, + `DownloadInformation_file_id` VARCHAR(50) NOT NULL, + PRIMARY KEY (`DownloadInformation_file_id`), + CONSTRAINT `fk_DownloadStatistics_DownloadInformation1` + FOREIGN KEY (`DownloadInformation_file_id`) + REFERENCES `youtubemd`.`DownloadInformation` (`file_id`) + ON DELETE NO ACTION + ON UPDATE NO ACTION) +ENGINE = InnoDB +CHECKSUM = 1; + +SHOW WARNINGS; + +-- ----------------------------------------------------- +-- Table `youtubemd`.`Playlist` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `youtubemd`.`Playlist` ( + `id` VARCHAR(60) NOT NULL, + PRIMARY KEY (`id`)) +ENGINE = InnoDB +CHECKSUM = 1; + +SHOW WARNINGS; +CREATE UNIQUE INDEX `id_UNIQUE` ON `youtubemd`.`Playlist` (`id` ASC) VISIBLE; + +SHOW WARNINGS; + +-- ----------------------------------------------------- +-- Table `youtubemd`.`Playlist_has_VideoInformation` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `youtubemd`.`Playlist_has_VideoInformation` ( + `Playlist_id` VARCHAR(60) NOT NULL, + `VideoInformation_id` VARCHAR(11) NOT NULL, + PRIMARY KEY (`Playlist_id`, `VideoInformation_id`), + CONSTRAINT `fk_Playlist_has_VideoInformation_Playlist1` + FOREIGN KEY (`Playlist_id`) + REFERENCES `youtubemd`.`Playlist` (`id`) + ON DELETE NO ACTION + ON UPDATE NO ACTION, + CONSTRAINT `fk_Playlist_has_VideoInformation_VideoInformation1` + FOREIGN KEY (`VideoInformation_id`) + REFERENCES `youtubemd`.`VideoInformation` (`id`) + ON DELETE NO ACTION + ON UPDATE NO ACTION) +ENGINE = InnoDB +CHECKSUM = 1; + +SHOW WARNINGS; +CREATE INDEX `fk_Playlist_has_VideoInformation_VideoInformation1_idx` ON `youtubemd`.`Playlist_has_VideoInformation` (`VideoInformation_id` ASC) VISIBLE; + +SHOW WARNINGS; +CREATE INDEX `fk_Playlist_has_VideoInformation_Playlist1_idx` ON `youtubemd`.`Playlist_has_VideoInformation` (`Playlist_id` ASC) VISIBLE; + +SHOW WARNINGS; + +-- ----------------------------------------------------- +-- Table `youtubemd`.`PlaylistStatistics` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `youtubemd`.`PlaylistStatistics` ( + `timesRequested` INT NOT NULL, + `Playlist_id` VARCHAR(60) NOT NULL, + PRIMARY KEY (`Playlist_id`), + CONSTRAINT `fk_PlaylistStatistics_Playlist1` + FOREIGN KEY (`Playlist_id`) + REFERENCES `youtubemd`.`Playlist` (`id`) + ON DELETE NO ACTION + ON UPDATE NO ACTION) +ENGINE = InnoDB +CHECKSUM = 1; + +SHOW WARNINGS; + +SET SQL_MODE=@OLD_SQL_MODE; +SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; +SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; diff --git a/Design/Database/img_database_model.png b/Design/Database/img_database_model.png new file mode 100644 index 0000000000000000000000000000000000000000..6046766c4155f7f4ef1fb0b4990aeb7448c323d0 GIT binary patch literal 114674 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 z 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%0Ab=njVR#1}pv+gA~c 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%0AH$Vu0yyYBmuSWpwWTFh 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 literal 0 HcmV?d00001 diff --git a/Design/Database/vect_database_model.svg b/Design/Database/vect_database_model.svg new file mode 100644 index 0000000..fe40b7a --- /dev/null +++ b/Design/Database/vect_database_model.svg @@ -0,0 +1,3111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Design/SRS/Software Requirement Specification.docx b/Design/SRS/Software Requirement Specification.docx index afb01d6556371777e8fa341c1a94e3d83a22b1f0..00a2c94c88f50cbe16e36c011a1d4cf300ef9aac 100644 GIT binary patch delta 574 zcmZ4Ro#)p#o()PY^4BF5BOi zxi)*R^ik=hInCi4)?^7hDK)tEoon9h_M^HTXI}939h}_6oO;7#y7+5#sfpf!aye%f zt@yDfA)&84D9v`l;h0vBeJ;Bu$P^g{>npzse^c+d?$s~1W%H#j_?R5Mrr{A?%(}?- z$fck5w=M}Tc63|myvWt3RcE8_<_@u7|1}3#{zlySIU`UsYrVnep0uLE1jQxIcRXq zU&-?4sb|a#43j6f2{i|@Zx3W=-12^M<~>zLqc$*dy6_?;2i3S*GA=^reaMYNC|0W=>9tWnjQz|}h-I|QbhfkDKO8QFZW WvjV(X*+42(fG~=afdS||AP)euqSrG3 delta 81893 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�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 diff --git a/youtube_md_bot/.idea/deployment.xml b/youtube_md_bot/.idea/deployment.xml deleted file mode 100644 index 45d90b0..0000000 --- a/youtube_md_bot/.idea/deployment.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/youtube_md_bot/.idea/inspectionProfiles/Project_Default.xml b/youtube_md_bot/.idea/inspectionProfiles/Project_Default.xml deleted file mode 100644 index bb2ce98..0000000 --- a/youtube_md_bot/.idea/inspectionProfiles/Project_Default.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - \ No newline at end of file diff --git a/youtube_md_bot/.idea/misc.xml b/youtube_md_bot/.idea/misc.xml deleted file mode 100644 index 9cebf05..0000000 --- a/youtube_md_bot/.idea/misc.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/youtube_md_bot/.idea/modules.xml b/youtube_md_bot/.idea/modules.xml deleted file mode 100644 index cc95f4e..0000000 --- a/youtube_md_bot/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/youtube_md_bot/.idea/sqlDataSources.xml b/youtube_md_bot/.idea/sqlDataSources.xml deleted file mode 100644 index b125209..0000000 --- a/youtube_md_bot/.idea/sqlDataSources.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/youtube_md_bot/.idea/vcs.xml b/youtube_md_bot/.idea/vcs.xml deleted file mode 100644 index 6c0b863..0000000 --- a/youtube_md_bot/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/youtube_md_bot/.idea/workspace.xml b/youtube_md_bot/.idea/workspace.xml deleted file mode 100644 index f245ff3..0000000 --- a/youtube_md_bot/.idea/workspace.xml +++ /dev/null @@ -1,939 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1529335044449 - - - 1529336000478 - - - 1529341560151 - - - 1529518221384 - - - 1529522603097 - - - 1529747881468 - - - 1529752871693 - - - 1530014316004 - - - 1530037766868 - - - 1530089505355 - - - 1530120152704 - - - 1530200290328 - - - 1530470820132 - - - 1530471396812 - - - 1530474313444 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/youtube_md_bot/.idea/youtube_md_bot.iml b/youtube_md_bot/.idea/youtube_md_bot.iml deleted file mode 100644 index b5835e7..0000000 --- a/youtube_md_bot/.idea/youtube_md_bot.iml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/youtube_md_bot/__init__.py b/youtube_md_bot/__init__.py deleted file mode 100644 index 9933cc3..0000000 --- a/youtube_md_bot/__init__.py +++ /dev/null @@ -1,157 +0,0 @@ -try: - from argparse import ArgumentParser, Namespace -except (ImportError, ModuleNotFoundError) as e: - print("Modules needed not found: " + str(e)) - -from .out import cPrint, Colors -from .upgrader import PiPUpgrader -from .database import DatabaseOperationsBase -from .utils import Constants, logger -from .handlers.StartHandler import StartHandler -from .handlers.HelpHandler import HelpHandler -from .handlers.DeveloperHandler import DeveloperHandler -from .handlers.VideoIDHandler import VideoIDHandler -from .handlers.URLHandler import URLHandler -from .handlers.TextHandler import TextHandler -from .handlers.UnexpectedHandler import UnexpectedHandler - - -def handler_definer(): - # type: () -> list - from telegram import MessageEntity - from telegram.ext import CommandHandler, MessageHandler, Filters - - handlers = [] - with open(Constants.A_APP_MESSAGES, 'r') as messages_file: - messages: dict = messages_file.read() - start = StartHandler(messages) - help_handler = HelpHandler(messages) - dev = DeveloperHandler(messages) - video = VideoIDHandler(messages) - url = URLHandler(messages) - text = TextHandler(messages) - unexpected = UnexpectedHandler(messages) - - handlers.append(CommandHandler("start", start.start)) - handlers.append(CommandHandler("help", help_handler.help)) - handlers.append(CommandHandler("develop", dev.develop)) - handlers.append(MessageHandler(Filters.command, video.video_handler)) - handlers.append(MessageHandler(Filters.text & (Filters.entity(MessageEntity.URL) | - Filters.entity(MessageEntity.TEXT_LINK)), url.url_handler)) - handlers.append(MessageHandler(Filters.text, text.message_handler)) - handlers.append(MessageHandler(Filters.all, unexpected.unexpected)) - - return handlers - - -def main(arguments: Namespace): - global updater, db_manager - try: - import pickle - import logging - import secrets - import string - - from os import path - from telegram.ext import Updater - except (ImportError, ModuleNotFoundError) as import_error: - cPrint("Modules needed not found" + str(import_error), Colors.FAIL) - exit(-1) - else: - try: - token = arguments.token - youtube_api_key = arguments.youtube - creator_id = arguments.creator - database_user = arguments.db_user - database_password = arguments.db_password - must_show_version = arguments.version - if must_show_version: - cPrint("Version: " + Constants.A_APP_VERSION + "-" + Constants.A_APP_TAG_R + - " (" + Constants.A_APP_TAG + ")", Colors.BOLD) - exit(0) - if not path.exists(Constants.A_APP_DATA_FILE): - if not token: - raise ValueError("You must add token at least the first time you execute this app") - elif not youtube_api_key: - raise ValueError("You must include the YouTubeAPI Key at least the first time you execute this app") - elif not creator_id: - raise ValueError("You must include the creator ID (Telegram) at least the first time you execute " - "this app") - else: - if not database_user: - database_user = "youtube_md_bot" - if not database_password: - alphabet = string.ascii_letters + string.digits - database_password = ''.join(secrets.choice(alphabet) for i in range(32)) - with open(Constants.A_APP_DATA_FILE, "wb") as app_data_file: - app_data = {"TOKEN": token, - "YT_API": youtube_api_key, - "CREATOR_ID": creator_id, - "DB_USER": database_user, - "DB_PASSWORD:": database_password} - pickle.dump(app_data, app_data_file, pickle.HIGHEST_PROTOCOL) - main(arguments) - else: - cPrint("Initializing bot...", Colors.GREEN) - cPrint("Looking for packages updates...", Colors.GREEN) - - upgrader = PiPUpgrader(Constants.A_APP_REQ_FILE) - upgrader.upgradePackages() - - cPrint("Obtaining values...", Colors.GREEN) - with open(Constants.A_APP_DATA_FILE, "rb") as app_data_file: - app_data = pickle.load(app_data_file) - - cPrint("Starting database system...", Colors.GREEN) - db_manager = DatabaseOperationsBase(username=database_user, password=database_password) - - cPrint("Defining handlers...", Colors.GREEN) - handlers = handler_definer() - updater = Updater(token=app_data["TOKEN"], workers=50) - dispatcher = updater.dispatcher - for handler in handlers: - dispatcher.add_handler(handler) - - cPrint("Defining log...", Colors.GREEN) - logger.setup_logging(Constants.L_PRIMARY_LOGGER_NAME, Constants.L_PRIMARY_LOGGER_FILENAME, - Constants.L_PRIMARY_LOGGER_MODE) - logger.setup_logging(Constants.L_SECONDARY_LOGGER_NAME, Constants.L_SECONDARY_LOGGER_MODE) - try: - updater.start_polling(poll_interval=1, timeout=90) - except KeyboardInterrupt: - cPrint("Exiting program... Wait while closing threads and pending petitions...", Colors.FAIL) - updater.idle() - db_manager.finishConnection() - exit(0) - except Exception as program_execution_exception: - cPrint(str(program_execution_exception), Colors.FAIL) - exit(-1) - - -if __name__ == '__main__': - args = ArgumentParser() - args.add_argument("-t", - "--token", - help="Telegram token obtained via BotFather", - type=str) - args.add_argument("-y", - "--youtube", - help="YouTube API Key", - type=str) - args.add_argument("-c", - "--creator", - help="Telegram ID of the creator", - type=int) - args.add_argument("-dbu", - "--db_user", - help="Database user (can be empty)", - type=str) - args.add_argument("-dbp", - "--db_password", - help="Database password (can be empty)", - type=str) - args.add_argument("-v", - "--version", - help="Application version", - action="store_true") - main(args.parse_args()) diff --git a/youtube_md_bot/database/__init__.py b/youtube_md_bot/database/__init__.py deleted file mode 100644 index b0c4148..0000000 --- a/youtube_md_bot/database/__init__.py +++ /dev/null @@ -1,340 +0,0 @@ -import uuid - -from cassandra.cluster import Cluster -from cassandra.auth import PlainTextAuthProvider - -from collections import namedtuple - -from datetime import datetime - - -# Singleton class -class DatabaseOperationsBase(object): - __instance = None - - def __new__(cls, username: str=None, password: str=None): - if DatabaseOperationsBase.__instance is None: - if username is None or password is None: - raise ValueError("You must provide the DB user and password at least the first time") - DatabaseOperationsBase.__instance = object.__new__(cls) - DatabaseOperationsBase.__instance.__username = username - DatabaseOperationsBase.__instance.__password = password - auth_provider = PlainTextAuthProvider(username=username, password=password) - cluster = Cluster(auth_provider=auth_provider) - DatabaseOperationsBase.__instance.__session = cluster.connect() - DatabaseOperationsBase.__instance.__createTables() - return DatabaseOperationsBase.__instance - - def getInstance(self): - return self.__instance - - def __createTables(self): - with open("../../Design/db_script.cql", "r") as sql_script: - queries = sql_script.read().splitlines() - for query in queries: - self.__session.execute(query) - - def finishConnection(self): - self.__session.shutdown() - - -class InsertOperations(DatabaseOperationsBase): - def __new__(cls, *args, **kwargs): - return super().__new__(cls) - - def registerNewUser(self, user_id: int, username: str, name: str): - query = """INSERT INTO YouTubeMDApp.User(user_id, username, name, first_use) VALUES (%s, %s, %s, %s);""" - self.__session.execute(query, (user_id, username, name, datetime.now())) - - def registerPreferences(self, user_id: int, audio_quality: str, audio_format: str, os: str, - should_ask_metadata: bool): - query = """ - INSERT INTO YouTubeMDApp.preferences(audio_quality, audio_format, os, should_ask_metadata, user_id) - VALUES (%s, %s, %s, %s, %s); - """ - self.__session.execute(query, (audio_quality, audio_format, os, should_ask_metadata, user_id)) - - def registerStatistics(self, user_id: int, lang: str, downloads: int, last_time_active: datetime): - query = """ - INSERT INTO YouTubeMDApp.Statistics(lang, downloads, last_time_active, user_id) VALUES (%s, %s, %s, %s); - """ - self.__session.execute_async(query, (lang, downloads, last_time_active, user_id)) - - def registerNewSong(self, file_id: str, video_id: str, audio_quality: int, audio_format: int, times_requested: int, - is_metadata_by_user: bool): - query = """ - INSERT INTO YouTubeMDApp.music (file_id, video_id, audio_quality, audio_format, times_requested, - is_metadata_by_user) VALUES (%s, %s, %s, %s, %s, %s) - """ - self.__session.execute_async(query, (file_id, video_id, audio_quality, audio_format, times_requested, - is_metadata_by_user)) - - def registerNewPlaylist(self, playlist_id: str, number_elements: int, times_requested: int): - query = """ - INSERT INTO YouTubeMDApp.playlist(playlist_id, number_elements, times_requested) VALUES (%s, %s, %s) - """ - self.__session.execute_async(query, (playlist_id, number_elements, times_requested)) - - def registerNewSongForPlaylist(self, playlist_id: str, file_id: str, playlist_quality: str, playlist_format: str): - query = """ - INSERT INTO YouTubeMDApp.playlist_has_music - (playlist_playlist_id, music_file_id, playlist_quality, playlist_format) VALUES (%s, %s, %s, %s) - """ - self.__session.execute(query, (playlist_id, file_id, playlist_quality, playlist_format)) - - def registerNewSongMetadata(self, title: str, artist: str, cover: str, duration: str, file_id: str): - query = """ - INSERT INTO YouTubeMDApp.metadata(title, artist, cover, song_duration, music_file_id) - VALUES (%s, %s, %s, %s, %s) - """ - self.__session.execute_async(query, (title, artist, cover, duration, file_id)) - - def registerNewSongInHistory(self, user_id: int, file_id: str): - query = """ - INSERT INTO YouTubeMDApp.history(user_id, file_id) VALUES (%s, %s) - """ - self.__session.execute_async(query, (user_id, file_id)) - - -class UpdateOperations(DatabaseOperationsBase): - def __new__(cls, *args, **kwargs): - return super().__new__(cls) - - def updateUserUsername(self, new_username: str, user_id: int): - query = """ - UPDATE YouTubeMDApp.user SET username = %s WHERE user_id = %s - """ - self.__session.execute_async(query, (new_username, user_id)) - - def updateUserAudioQuality(self, user_id: int, audio_quality: str): - query = """ - UPDATE YouTubeMDApp.preferences SET audio_quality = %s WHERE user_id = %s - """ - self.__session.execute(query, (audio_quality, user_id)) - - def updateUserAudioFormat(self, user_id: int, audio_format: str): - query = """ - UPDATE YouTubeMDApp.preferences SET audio_format = %s WHERE user_id = %s - """ - self.__session.execute(query, (audio_format, user_id)) - - def updateUserOS(self, user_id: int, os: str): - query = """ - UPDATE YouTubeMDApp.preferences SET os = %s WHERE user_id = %s - """ - self.__session.execute(query, (os, user_id)) - - def updateIfUserMustBeRequestedForMetadata(self, user_id: int, shouldAskForMetadata: bool): - query = """ - UPDATE YouTubeMDApp.preferences SET should_ask_metadata = %s WHERE user_id = %s - """ - self.__session.execute(query, (shouldAskForMetadata, user_id)) - - def updateUserLang(self, user_id: int, lang: str): - query = """ - UPDATE YouTubeMDApp.statistics SET lang = %s WHERE user_id = %s - """ - self.__session.execute_async(query, (lang, user_id)) - - def updateUserDownloads(self, user_id: int): - query = """ - UPDATE YouTubeMDApp.statistics SET downloads = downloads + 1 WHERE user_id = %s - """ - self.__session.execute_async(query, (user_id, )) - - def updateUserLastTimeActive(self, user_id: int): - query = """ - UPDATE YouTubeMDApp.statistics SET last_time_active = %s WHERE user_id = %s - """ - self.__session.execute_async(query, (datetime.now(), user_id)) - - def updatePlaylistNumberOfElements(self, playlist_id: str, number_of_elements: int): - query = """ - UPDATE YouTubeMDApp.playlist SET number_elements = %s WHERE playlist_id = %s - """ - self.__session.execute_async(query, (number_of_elements, playlist_id)) - - def updatePlaylistTimesRequested(self, playlist_id: str): - query = """ - UPDATE YouTubeMDApp.playlist SET times_requested = times_requested + 1 WHERE playlist_id = %s - """ - self.__session.execute_async(query, (playlist_id, )) - - -class SelectOperations(DatabaseOperationsBase): - def __new__(cls, *args, **kwargs): - return super().__new__(cls) - - def selectUserData(self, user_id: int): - # type: () -> namedtuple - query = """SELECT username, name FROM YouTubeMDApp.User WHERE user_id = %s""" - return self.__session.execute(query, (user_id, )) - - def selectUserPreferences(self, user_id: int): - # type: () -> namedtuple - query = """ - SELECT audio_quality, audio_format, os, should_ask_metadata FROM YouTubeMDApp.preferences WHERE user_id = %s - """ - return self.__session.execute(query, (user_id, )) - - def selectUserHistoryForUserID(self, user_id: int): - # type: () -> namedtuple - query = """SELECT file_id FROM YouTubeMDApp.history WHERE user_id = %s""" - return self.__session.execute(query, (user_id,)) - - def selectMetadataForMusicID(self, music_id: str): - # type: () -> namedtuple - query = """SELECT title, artist, cover, song_duration FROM YouTubeMDApp.metadata WHERE music_file_id = %s""" - return self.__session.execute(query, (music_id,)) - - def searchMusicByVideoIDAndExtras(self, video_id: str, audio_quality: int, audio_format: int): - # type: () -> namedtuple - query = """ - SELECT file_id FROM YouTubeMDApp.music WHERE (video_id = %s, audio_quality = %s, audio_format = %s, - is_metadata_by_user = %s) - """ - return self.__session.execute(query, (video_id, audio_quality, audio_format, False)) - - def searchPlaylistByIDAndExtras(self, playlist_id: str, playlist_quality: int, playlist_format: int): - # type: () -> namedtuple - query = """ - SELECT playlist_unique_id FROM YouTubeMDApp.playlist WHERE (playlist_id = %s, playlist_quality = %s, - playlist_format = %s) - """ - return self.__session.execute(query, (playlist_id, playlist_quality, playlist_format)) - - def selectSongsOfPlaylist(self, playlist_unique_id: uuid): - # type: () -> namedtuple - query = """ - SELECT music_file_id FROM YouTubeMDApp.playlist_has_music WHERE playlist_unique_id = %s - """ - return self.__session.execute(query, (playlist_unique_id, )) - - def selectStatisticsForUser(self, user_id: int): - # type: () -> namedtuple - query = """ - SELECT lang, downloads, last_time_active FROM YouTubeMDApp.Statistics WHERE user_id = %s - """ - return self.__session.execute(query, (user_id, )) - - def selectTotal24ActiveUsers(self): - # type: () -> namedtuple - query = """ - SELECT COUNT(user_id) FROM YouTubeMDApp.Statistics WHERE last_time_active >= (%s - 1d) - """ - return self.__session.execute(query, (datetime.now(), )) - - def selectMostDownloadedSong(self): - # type: () -> namedtuple - query = """ - SELECT MAX(times_requested) FROM YouTubeMDApp.music - """ - return self.__session.execute(query) - - def selectMostDownloadedPlaylist(self): - # type: () -> namedtuple - query = """ - SELECT MAX(times_requested) FROM YouTubeMDApp.playlist - """ - return self.__session.execute(query) - - def selectMostUsedGeoLocation(self): - # type: () -> namedtuple - query = """ - SELECT lang, COUNT(lang) AS most_used_lang FROM YouTubeMDApp.Statistics GROUP BY lang ORDER BY most_used_lang - DESC - """ - return self.__session.execute(query) - - def selectTotalUsers(self): - # type: () -> namedtuple - query = """ - SELECT COUNT(user_id) FROM YouTubeMDApp.User - """ - return self.__session.execute(query) - - def selectTotalRequestedSongs(self): - # type: () -> namedtuple - query = """ - SELECT COUNT(file_id) FROM YouTubeMDApp.music - """ - return self.__session.execute(query) - - def selectTotalSongsRequests(self): - # type: () -> namedtuple - query = """ - SELECT SUM(times_requested) FROM YouTubeMDApp.music - """ - return self.__session.execute(query) - - def selectTotalRequestedPlaylists(self): - # type: () -> namedtuple - query = """ - SELECT COUNT(playlist_unique_id) FROM YouTubeMDApp.playlist - """ - return self.__session.execute(query) - - def selectTotalPlaylistsRequests(self): - # type: () -> namedtuple - query = """ - SELECT SUM(times_requested) FROM YouTubeMDApp.playlist - """ - return self.__session.execute(query) - - def selectMostCommonQuality(self): - # type: () -> namedtuple - query = """ - SELECT audio_quality, COUNT(audio_quality) AS most_used_audio_quality FROM YouTubeMDApp.preferences - GROUP BY audio_quality ORDER BY most_used_audio_quality DESC - """ - return self.__session.execute(query) - - def selectMostCommonFormat(self): - # type: () -> namedtuple - query = """ - SELECT audio_format, COUNT(audio_format) AS most_used_audio_format FROM YouTubeMDApp.preferences - GROUP BY audio_format ORDER BY most_used_audio_format DESC - """ - return self.__session.execute(query) - - def selectMostCommonOS(self): - # type: () -> namedtuple - query = """ - SELECT os, COUNT(os) AS most_used_os FROM YouTubeMDApp.preferences GROUP BY os ORDER BY most_used_os DESC - """ - return self.__session.execute(query) - - def selectUsersRegistered30DaysAgo(self): - # type: () -> namedtuple - query = """ - SELECT COUNT(user_id) FROM YouTubeMDApp.User WHERE first_use >= (%s - 1mo) - """ - return self.__session.execute(query, (datetime.now(), )) - - def selectUsersRegistered7DaysAgo(self): - # type: () -> namedtuple - query = """ - SELECT COUNT(user_id) FROM YouTubeMDApp.User WHERE first_use >= (%s - 1w) - """ - return self.__session.execute(query, (datetime.now(), )) - - def selectUsersRegisteredLatest24Hours(self): - # type: () -> namedtuple - query = """ - SELECT COUNT(user_id) FROM YouTubeMDApp.User WHERE first_use >= (%s - 1d) - """ - return self.__session.execute(query, (datetime.now(), )) - - def selectUsersRegisteredAYearAgo(self): - # type: () -> namedtuple - query = """ - SELECT COUNT(user_id) FROM YouTubeMDApp.User WHERE first_use >= (%s - 1y) - """ - return self.__session.execute(query, (datetime.now(), )) - - def selectLatestRegisteredUSer(self): - # type: () -> namedtuple - query = """ - SELECT user_id FROM YouTubeMDApp.User WHERE first_use = (SELECT MAX(first_use) FROM YouTubeMDApp.User) - """ - return self.__session.execute(query) diff --git a/youtube_md_bot/db_script_pycharm.ddl b/youtube_md_bot/db_script_pycharm.ddl deleted file mode 100644 index 0445840..0000000 --- a/youtube_md_bot/db_script_pycharm.ddl +++ /dev/null @@ -1,10 +0,0 @@ -CREATE KEYSPACE IF NOT EXISTS YouTubeMDApp WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 3}; -USE YouTubeMDApp; -CREATE TABLE IF NOT EXISTS history (user_id int NOT NULL, file_id varchar NOT NULL); -CREATE TABLE IF NOT EXISTS metadata (title varchar, artist varchar, cover text, song_duration duration, music_file_id varchar NOT NULL, PRIMARY KEY (music_file_id)); -CREATE TABLE IF NOT EXISTS music (file_id varchar NOT NULL,video_id varchar, audio_quality int, audio_format int, times_requested counter, is_metadata_by_user boolean, PRIMARY KEY (file_id)); -CREATE TABLE IF NOT EXISTS playlist (playlist_unique_id UUID NOT NULL, playlist_id varchar NOT NULL, playlist_quality int, playlist_format int, number_elements int, times_requested counter, PRIMARY KEY (playlist_unique_id)); -CREATE TABLE IF NOT EXISTS playlist_has_music (playlist_unique_id UUID NOT NULL, music_file_id varchar NOT NULL); -CREATE TABLE IF NOT EXISTS preferences (audio_quality varchar, audio_format varchar, os varchar, should_ask_metadata boolean, user_id int NOT NULL, PRIMARY KEY (user_id)); -CREATE TABLE IF NOT EXISTS "User" (user_id int NOT NULL, username varchar, name text, first_use datetime, PRIMARY KEY (user_id)); -CREATE TABLE IF NOT EXISTS Statistics (lang varchar, downloads counter, last_time_active datetime, user_id int NOT NULL, PRIMARY KEY(user_id)); \ No newline at end of file diff --git a/youtube_md_bot/handlers/DeveloperHandler.py b/youtube_md_bot/handlers/DeveloperHandler.py deleted file mode 100644 index 84ce8ef..0000000 --- a/youtube_md_bot/handlers/DeveloperHandler.py +++ /dev/null @@ -1,10 +0,0 @@ -from telegram import Bot, Update, ParseMode -from telegram.ext import run_async - -from handlers import Handler - - -class DeveloperHandler(Handler): - @run_async - def develop(self, bot: Bot, update: Update): - # to do \ No newline at end of file diff --git a/youtube_md_bot/handlers/HelpHandler.py b/youtube_md_bot/handlers/HelpHandler.py deleted file mode 100644 index 1936603..0000000 --- a/youtube_md_bot/handlers/HelpHandler.py +++ /dev/null @@ -1,88 +0,0 @@ -from telegram import Bot, Update, ParseMode, InlineKeyboardMarkup, InlineKeyboardButton -from telegram.ext import run_async - -from handlers import Handler - - -class HelpHandler(Handler): - @run_async - def help(self, bot: Bot, update: Update, args: list): - effective_user = update.effective_user - user_id = effective_user.id - lang = effective_user.language_code - - self.__update_operations.updateUserLastTimeActive(user_id) - - if len(args) == 0: - self.show_help_keyboard(bot=bot, user_id=user_id, lang=lang) - else: - help_attribute = args[0] - if help_attribute == "ta": - self.show_help_title_artist(bot, user_id, lang) - elif help_attribute == "url": - self.show_help_url(bot, user_id, lang) - elif help_attribute == 'h': - self.show_help_history(bot, user_id, lang) - elif help_attribute == "meta": - self.show_help_metadata(bot, user_id, lang) - else: - self.__show_reply_unrecognized_attribute(bot, user_id, lang) - - def show_help_keyboard(self, bot: Bot, user_id: int, lang: str, message_id: int = None): - help_message = self.__messages[lang][0]["help"]["msg"] - tt_at_button = self.__messages[lang][0]["help"]["d_via_tt-at-but"] - url_button = self.__messages[lang][0]["help"]["d_via_url-but"] - history_button = self.__messages[lang][0]["help"]["d_via_history-but"] - metadata_button = self.__messages[lang][0]["help"]["m_set_metadata-but"] - support_button = self.__messages[lang][0]["help"]["support_but"] - - help_keyboard = InlineKeyboardMarkup([[InlineKeyboardButton(tt_at_button, callback_data="tt_at_button"), - InlineKeyboardButton(url_button, callback_data="url_button")], - [InlineKeyboardButton(history_button, callback_data="history_button"), - InlineKeyboardButton(metadata_button, callback_data="metadata_button")], - [InlineKeyboardButton(support_button, callback_data="support_button")]]) - if not message_id: - bot.sendMessage(chat_id=user_id, text=help_message, reply_markup=help_keyboard, - parse_mode=ParseMode.MARKDOWN) - else: - bot.editMessageText(text=help_message, chat_id=user_id, message_id=message_id, - parse_mode=ParseMode.MARKDOWN) - - def show_help_title_artist(self, bot: Bot, user_id: int, lang: str, message_id: int = None): - help_message = self.__messages[lang][0]["help"]["d_via_tt-at"] - if not message_id: - bot.sendMessage(chat_id=user_id, text=help_message, parse_mode=ParseMode.MARKDOWN) - else: - self.__show_keyboard_back_button(bot, user_id, lang, message_id, help_message) - - def show_help_url(self, bot: Bot, user_id: int, lang: str, message_id: int = None): - help_message = self.__messages[lang][0]["help"]["d_via_url"] - if not message_id: - bot.sendMessage(chat_id=user_id, text=help_message, parse_mode=ParseMode.MARKDOWN) - else: - self.__show_keyboard_back_button(bot, user_id, lang, message_id, help_message) - - def show_help_history(self, bot: Bot, user_id: int, lang: str, message_id: int = None): - help_message = self.__messages[lang][0]["help"]["d_via_history"] - if not message_id: - bot.sendMessage(chat_id=user_id, text=help_message, parse_mode=ParseMode.MARKDOWN) - else: - self.__show_keyboard_back_button(bot, user_id, lang, message_id, help_message) - - def show_help_metadata(self, bot: Bot, user_id: int, lang: str, message_id: int = None): - help_message = self.__messages[lang][0]["help"]["m_set_metadata"] - if not message_id: - bot.sendMessage(chat_id=user_id, text=help_message, parse_mode=ParseMode.MARKDOWN) - else: - self.__show_keyboard_back_button(bot, user_id, lang, message_id, help_message) - - def __show_keyboard_back_button(self, bot: Bot, user_id: int, lang: str, message_id: int, text: str): - back_button = self.__messages[lang][0]["help"]["back_button"] - - back_keyboard = InlineKeyboardMarkup([[InlineKeyboardButton(back_button, callback_data="help_back")]]) - bot.editMessageText(text=text, chat_id=user_id, message_id=message_id, - parse_mode=ParseMode.MARKDOWN, reply_markup=back_keyboard) - - def __show_reply_unrecognized_attribute(self, bot: Bot, user_id: int, lang: str): - unrecognized_text = self.__messages[lang][0]["help"]["h_unrecognized"] - bot.sendMessage(chat_id=user_id, text=unrecognized_text, parse_mode=ParseMode.MARKDOWN) diff --git a/youtube_md_bot/handlers/StartHandler.py b/youtube_md_bot/handlers/StartHandler.py deleted file mode 100644 index f06e5ae..0000000 --- a/youtube_md_bot/handlers/StartHandler.py +++ /dev/null @@ -1,34 +0,0 @@ -from telegram import Bot, Update, ParseMode -from telegram.ext import run_async - -from datetime import datetime - -from handlers import Handler -from utils import Constants - - -class StartHandler(Handler): - def __init__(self, handler_messages: dict): - super().__init__(handler_messages=handler_messages) - - @run_async - def start(self, bot: Bot, update: Update): - import os - import pickle - - effective_user = update.effective_user - user_id = effective_user.id - username = effective_user.username - name = effective_user.first_name - lang = effective_user.language_code - - user_path = Constants.P_USERS_PATH + user_id + '/' - db_insert = self.__insert_operations - if not os.path.exists(user_path): - os.mkdir(user_path) - with open(user_path + Constants.P_USERS_FILE, "wb") as user_info: - pickle.dump(Constants.D_USER_DICT, user_info) - db_insert.registerNewUser(user_id=user_id, username=username, name=name) - db_insert.registerStatistics(user_id, lang, 0, datetime.now()) - message = self.__messages[lang][0]["welcome"][0]["msg"].format(username) - bot.sendMessage(chat_id=user_id, text=message, parse_mode=ParseMode.MARKDOWN) diff --git a/youtube_md_bot/handlers/TextHandler.py b/youtube_md_bot/handlers/TextHandler.py deleted file mode 100644 index 129622d..0000000 --- a/youtube_md_bot/handlers/TextHandler.py +++ /dev/null @@ -1,10 +0,0 @@ -from telegram import Bot, Update, ParseMode -from telegram.ext import run_async - -from handlers import Handler - - -class TextHandler(Handler): - @run_async - def message_handler(self, bot: Bot, update: Update): - text = update.message.text diff --git a/youtube_md_bot/handlers/URLHandler.py b/youtube_md_bot/handlers/URLHandler.py deleted file mode 100644 index d3cd07b..0000000 --- a/youtube_md_bot/handlers/URLHandler.py +++ /dev/null @@ -1,10 +0,0 @@ -from telegram import Bot, Update, ParseMode -from telegram.ext import run_async - -from handlers import Handler - - -class URLHandler(Handler): - @run_async - def url_handler(self, bot: Bot, update: Update): - message = update.message.text diff --git a/youtube_md_bot/handlers/UnexpectedHandler.py b/youtube_md_bot/handlers/UnexpectedHandler.py deleted file mode 100644 index a348364..0000000 --- a/youtube_md_bot/handlers/UnexpectedHandler.py +++ /dev/null @@ -1,10 +0,0 @@ -from telegram import Bot, Update, ParseMode -from telegram.ext import run_async - -from handlers import Handler - - -class UnexpectedHandler(Handler): - @run_async - def unexpected(self, bot: Bot, update: Update): - msg_type = update.message.text diff --git a/youtube_md_bot/handlers/VideoIDHandler.py b/youtube_md_bot/handlers/VideoIDHandler.py deleted file mode 100644 index 27ca7fb..0000000 --- a/youtube_md_bot/handlers/VideoIDHandler.py +++ /dev/null @@ -1,10 +0,0 @@ -from telegram import Bot, Update, ParseMode -from telegram.ext import run_async - -from handlers import Handler - - -class VideoIDHandler(Handler): - @run_async - def video_handler(self, bot: Bot, update: Update): - video_id = update.message.text diff --git a/youtube_md_bot/handlers/__init__.py b/youtube_md_bot/handlers/__init__.py deleted file mode 100644 index ba8141d..0000000 --- a/youtube_md_bot/handlers/__init__.py +++ /dev/null @@ -1,9 +0,0 @@ -from database import InsertOperations, SelectOperations, UpdateOperations - - -class Handler: - def __init__(self, handler_messages: dict): - self.__messages = handler_messages - self.__insert_operations: InsertOperations = InsertOperations() - self.__update_operations: UpdateOperations = UpdateOperations() - self.__select_operations: SelectOperations = SelectOperations() diff --git a/youtube_md_bot/messages/messages.json b/youtube_md_bot/messages/messages.json deleted file mode 100644 index bbaabc6..0000000 --- a/youtube_md_bot/messages/messages.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "es": [ - { - "welcome": [ - { - "msg": "Hola, bienvenido {} 😄\nUsa el comando /help para *obtener más ayuda* o empieza a *usar el bot* ya mismo 🎶\n\nSi quieres estar al tanto de las _últimas noticias_ sobre el bot, échale un vistazo al canal oficial: @ytMDBot" - } - ], - "help": [ - { - "msg": "Para descargar una canción puedes:\n ■ *Buscar* 🔎 la canción por _título y artista_, enviándoselo directamente al bot\n ■ *Enviar* directamente la _URL_ 🔗 del vídeo\n ■ Seleccionar una *canción ya descargada* desde el historial 🕒\n\nPara más ayuda, navega con los botones que aparecen debajo", - "d_via_tt-at-but": "Título y artista 🗣🎤", - "d_via_url-but": "URL 🔗", - "d_via_history-but": "Historial 🕒", - "m_set_metadata-but": "Metadatos 🏷", - "support_but": "Soporte 🛠", - "back_button": "◀ Atrás", - "d_via_tt-at": "*Descarga*[ ]({})canciones enviando directamente el _título_ 🎤 y _artista_ 🗣 de la canción al bot.\n\n_Puedes obtener esta información escribiendo:_ `/help ta` (*t*itle, *a*rtist)", - "d_via_url": "Comienza[ ]({})directamente *con la descarga* enviando la URL del vídeo de YouTube\n\nPuedes usar un bot _inline_ como @vid para agilizar este proceso.\n\n_Puedes obtener esta información escribiendo:_ `/help url`", - "d_via_history": "Accede[ ]({})a tu *historial* mediante el comando /history, desde donde podrás _seleccionar directamente_ la canción que quieras descargar.\n\n_Puedes obtener esta información escribiendo:_ `/help h` (*h*istory)", - "m_set_metadata": "Cambia los metadatos de una canción al descargarla:\n\n ■ Cambia *las preferencias* ⚙ usando /config\n ■ Cuando _descargues un vídeo_, se te preguntará por las preferencias. Indica el título usando /t:\n `/t titulo`\n Indica el artista usando /a:\n `/a artista`\n ■ Se te *preguntará* si quieres usar la _miniatura de YouTube_ como carátula de tu canción.\n\n_Puedes obtener esta información escribiendo:_ `/help meta` (*meta*data)", - "h_unrecognized": "No se reconoce el atributo. La lista de opciones disponibles es:\n\n ■ `/help ta`, para título y artista 🗣🎤\n ■ `/help url`, para URL 🔗\n ■ `/help h`, para historial 🕒\n ■ `/help meta`, para metadatos 🏷" - } - ] - } - ], - "en": [ - { - - } - ] -} \ No newline at end of file diff --git a/youtube_md_bot/out/__init__.py b/youtube_md_bot/out/__init__.py deleted file mode 100644 index eb35c7e..0000000 --- a/youtube_md_bot/out/__init__.py +++ /dev/null @@ -1,27 +0,0 @@ -class Colors: - RED = "red" - BLUE = "blue" - GREEN = "green" - WARNING = "warning" - FAIL = "fail" - BOLD = "bold" - UNDERLINE = "underline" - RESET_ALL = "reset_all" - - -class OutputColors: - colors = {Colors.RED: '\033[95m', - Colors.BLUE: '\033[94m', - Colors.GREEN: '\033[92m', - Colors.WARNING: '\033[93m', - Colors.FAIL: '\033[91m', - Colors.BOLD: '\033[1m', - Colors.UNDERLINE: '\033[4m', - Colors.RESET_ALL: '\033[0m'} - - -def cPrint(text: str, color: Colors = None): - colors = OutputColors.colors - if color is None: - color = colors[Colors.RESET_ALL] - print(colors[color] + text + colors[Colors.RESET_ALL]) diff --git a/youtube_md_bot/requirements.txt b/youtube_md_bot/requirements.txt deleted file mode 100644 index d948e9a..0000000 --- a/youtube_md_bot/requirements.txt +++ /dev/null @@ -1,4 +0,0 @@ -cassandra-driver -telegram -pip -python-telegram-bot diff --git a/youtube_md_bot/upgrader/__init__.py b/youtube_md_bot/upgrader/__init__.py deleted file mode 100644 index eb5c8b3..0000000 --- a/youtube_md_bot/upgrader/__init__.py +++ /dev/null @@ -1,10 +0,0 @@ -class PiPUpgrader: - def __init__(self, file: str): - self.__file = file - - def upgradePackages(self): - import subprocess - with open(self.__file, 'r') as f: - requirements = f.read().splitlines() - for requirement in requirements: - subprocess.run(("pip install -U " + requirement).split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE) diff --git a/youtube_md_bot/utils/__init__.py b/youtube_md_bot/utils/__init__.py deleted file mode 100644 index 6fa6d52..0000000 --- a/youtube_md_bot/utils/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -import logging - - -class Constants: - P_USERS_PATH = "user_data/" - P_USERS_FILE = "user_info.json" - - D_USER_DICT = {"state": 0, - "is_downloading_video": False, - "pending_videos": 0} - - A_APP_VERSION = "0.2" - A_APP_TAG = "development" - A_APP_TAG_R = "d" - A_APP_DATA_FILE = "app_data.dict" - A_APP_REQ_FILE = "requirements.txt" - A_APP_MESSAGES = "messages/messages.json" - - L_PRIMARY_LOGGER_NAME = "pLog" - L_PRIMARY_LOGGER_MODE = logging.DEBUG - L_PRIMARY_LOGGER_FILENAME = "youtube-debug-log.log" - L_SECONDARY_LOGGER_NAME = "sLog" - L_SECONDARY_LOGGER_MODE = logging.WARNING diff --git a/youtube_md_bot/utils/logger.py b/youtube_md_bot/utils/logger.py deleted file mode 100644 index fad942d..0000000 --- a/youtube_md_bot/utils/logger.py +++ /dev/null @@ -1,37 +0,0 @@ -import logging - - -def setup_logging(logger_name: str, log_file: str=None, level: logging=logging.DEBUG, logging_format: str=None): - if logging_format is None: - logging_format = "%(asctime)s | %(name)s | [%(levelname)s]: %(message)s" - if log_file is None: - __setup_logging_no_file(logger_name, level, logging_format) - else: - new_logging = logging.getLogger(logger_name) - logging_formatter = logging.Formatter(logging_format) - logging_file_handler = logging.FileHandler(log_file, mode='w') - - logging_file_handler.setFormatter(logging_formatter) - - new_logging.setLevel(level) - new_logging.addHandler(logging_file_handler) - __cleanup_old_logs(new_logging, log_file) - - -def __setup_logging_no_file(logger_name: str, level: logging=logging.DEBUG, logging_format: str=None): - if logging_format is None: - raise ValueError("The first time a logger is created, the logging format cannot be None") - new_logging = logging.getLogger(logger_name) - logging_formatter = logging.Formatter(logging_format) - logging_console_handler = logging.StreamHandler() - - logging_console_handler.setFormatter(logging_formatter) - - new_logging.setLevel(level) - new_logging.addHandler(logging_console_handler) - - -def __cleanup_old_logs(logger: logging.Logger, filename: str): - from logging import handlers - rotating_handler = handlers.RotatingFileHandler(filename, maxBytes=2048, backupCount=5) - logger.addHandler(rotating_handler)