diff --git a/App/.idea/modules.xml b/App/.idea/modules.xml deleted file mode 100644 index 77dad0e..0000000 --- a/App/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/App/.idea/sqlDataSources.xml b/App/.idea/sqlDataSources.xml deleted file mode 100644 index 61ffe1d..0000000 --- a/App/.idea/sqlDataSources.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - \ No newline at end of file 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 0000000..03ffdc9 Binary files /dev/null and b/Design/Database/database_model.mwb differ diff --git a/Design/Database/database_model.mwb.bak b/Design/Database/database_model.mwb.bak new file mode 100644 index 0000000..ea968e3 Binary files /dev/null and b/Design/Database/database_model.mwb.bak differ 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 0000000..6046766 Binary files /dev/null and b/Design/Database/img_database_model.png differ diff --git a/Design/Database/pdf_database_model.pdf b/Design/Database/pdf_database_model.pdf new file mode 100644 index 0000000..4cdb445 Binary files /dev/null and b/Design/Database/pdf_database_model.pdf differ 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 afb01d6..00a2c94 100644 Binary files a/Design/SRS/Software Requirement Specification.docx and b/Design/SRS/Software Requirement Specification.docx differ diff --git a/README.md b/README.md index 57aaf2b..f375264 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@ # YouTubeMDBot A powerful bot for downloading almost every video on YouTube +## Working branch +Currently this project is being developed at *development* branch but also generated branched in order to perform tests safely. + ## Software Requirement Specification *(SRS)* -Go to the *[Software Requirement Specification](https://github.com/Javinator9889/YouTubeMDBot/blob/master/Design/SRS/Software%20Requirement%20Specification.pdf)* page for getting more information about the document +Go to the *[Software Requirement Specification](https://gitlab.javinator9889.com/Javinator9889/YouTubeMDBot/blob/master/Design/SRS/Software%20Requirement%20Specification.pdf)* page for getting more information about the project. 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)