Commit 53c4ab68 authored by Javinator9889's avatar Javinator9889 🎼

Merge branch 'design' into 'master'

Design

See merge request !1
parents cd742496 d16dce06
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="PackageRequirementsSettings">
<option name="requirementsPath" value="E:\Nextcloud\Programming\YouTubeMDBot\App\requirements.txt" />
</component>
<component name="TestRunnerService">
<option name="PROJECT_TEST_RUNNER" value="Unittests" />
</component>
</module>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="PublishConfigData">
<serverData>
<paths name="Copy of project-level server 'Casa' (1)">
<serverdata>
<mappings>
<mapping local="$PROJECT_DIR$" web="/" />
</mappings>
</serverdata>
</paths>
</serverData>
</component>
</project>
\ No newline at end of file
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="PyPep8Inspection" enabled="true" level="WEAK WARNING" enabled_by_default="true">
<option name="ignoredErrors">
<list>
<option value="W391" />
</list>
</option>
</inspection_tool>
<inspection_tool class="PyPep8NamingInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true">
<option name="ignoredErrors">
<list>
<option value="N802" />
<option value="N803" />
</list>
</option>
</inspection_tool>
<inspection_tool class="PyUnresolvedReferencesInspection" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoredIdentifiers">
<list>
<option value="urlencode.urlencoder" />
</list>
</option>
</inspection_tool>
</profile>
</component>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.6.1 (C:\Users\Javier Alonso Silva\AppData\Local\Programs\Python\Python36\python.exe)" project-jdk-type="Python SDK" />
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/App.iml" filepath="$PROJECT_DIR$/.idea/App.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
</component>
</project>
\ No newline at end of file
This diff is collapsed.
from argparse import ArgumentParser, Namespace
from .out import cPrint, Colors
from .upgrader import PiPUpgrader
def main(arguments: Namespace):
from os import path
import pickle
token = arguments.token
youtube_api_key = arguments.youtube
creator_id = arguments.creator
must_show_version = arguments.version
if must_show_version:
print("Version")
exit(0)
if not path.exists("app_data.dict"):
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 YouTube API 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:
with open("app_data.dict", "wb") as app_data_file:
app_data = {"TOKEN": token,
"YT_API": youtube_api_key,
"CREATOR_ID": creator_id}
pickle.dump(app_data, app_data_file, pickle.HIGHEST_PROTOCOL)
else:
cPrint("Initializing bot...", Colors.GREEN)
cPrint("Looking for packages updates...", Colors.GREEN)
upgrader = PiPUpgrader("requirements.txt")
upgrader.upgradePackages()
cPrint("Obtaining values...", Colors.GREEN)
with open("app_data.dict", "rb") as app_data_file:
app_data = pickle.load(app_data_file)
from telegram.ext import Updater
updater = Updater(token=app_data["TOKEN"], workers=50)
dispatcher = updater.dispatcher
import logging
logging.basicConfig(format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
level=logging.DEBUG)
updater.start_polling(poll_interval=5, timeout=60)
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("-v",
"--version",
help="Application version",
action="store_true")
main(args.parse_args())
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])
pip
python-telegram-bot
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)
This diff is collapsed.
This diff is collapsed.
<?xml version = '1.0' encoding = 'UTF-8'?>
<OSDM_Design class="oracle.dbtools.crest.model.design.Design" name="database_design" id="3C168D0F-3177-9281-C715-B5AB03BB32C4" version="3.5">
<createdBy>Javier Alonso Silva</createdBy>
<createdTime>2018-06-18 14:24:29 UTC</createdTime>
<ownerDesignName>database_design</ownerDesignName>
<capitalNames>false</capitalNames>
<designId>3C168D0F-3177-9281-C715-B5AB03BB32C4</designId>
</OSDM_Design>
\ No newline at end of file
<?xml version = '1.0' encoding = 'UTF-8'?>
<oracle.dbtools.crest.model.design.Design/>
<?xml version = '1.0' encoding = 'UTF-8'?>
<BusinessInfoDesign class="oracle.dbtools.crest.model.businessinfo.BusinessInfoDesign" name="Business Information" id="59BF102E-D6AA-D04B-9C26-BF948677664C">
<createdBy>Javier Alonso Silva</createdBy>
<createdTime>2018-06-18 14:24:30 UTC</createdTime>
<ownerDesignName>database_design</ownerDesignName>
<shouldBeOpen>false</shouldBeOpen>
</BusinessInfoDesign>
\ No newline at end of file
<?xml version = '1.0' encoding = 'UTF-8'?>
<oracle.dbtools.crest.model.businessinfo.BusinessInfoDesign/>
<?xml version = '1.0' encoding = 'UTF-8'?>
<oracle.dbtools.crest.model.design.datatypes.DataTypesDesign objectID="DE3FC7A8-6D17-E34E-603A-3A735F2357ED"/>
<?xml version = '1.0' encoding = 'UTF-8'?>
<DataTypesDesign class="oracle.dbtools.crest.model.design.datatypes.DataTypesDesign" name="DataTypes" id="DE3FC7A8-6D17-E34E-603A-3A735F2357ED" mainViewID="CFDE5FC8-D6A4-DF2D-FAA9-F1FC327377FA">
<createdBy>Javier Alonso Silva</createdBy>
<createdTime>2018-06-18 14:24:30 UTC</createdTime>
<ownerDesignName>database_design</ownerDesignName>
<shouldBeOpen>false</shouldBeOpen>
<collectionOfRefsPrefix>array_ref_</collectionOfRefsPrefix>
<collectionPrefix>array_</collectionPrefix>
<defaultArrayLimit>10</defaultArrayLimit>
<defaultCollectionType_Kind>ARRAY</defaultCollectionType_Kind>
<defaultCollectionType_Suffix>_Array</defaultCollectionType_Suffix>
<embeddedStructuredTypePrefix>inst_</embeddedStructuredTypePrefix>
<referencePrefix>ref_</referencePrefix>
<useRoleInAssociationEndAsName>true</useRoleInAssociationEndAsName>
</DataTypesDesign>
\ No newline at end of file
<?xml version = '1.0' encoding = 'UTF-8'?>
<oracle.dbtools.crest.model.design.datatypes.DataTypesDesign>
<object objectType="main_view" objectID="CFDE5FC8-D6A4-DF2D-FAA9-F1FC327377FA" name="DataTypes" visible="false"/>
</oracle.dbtools.crest.model.design.datatypes.DataTypesDesign>
<?xml version = '1.0' encoding = 'UTF-8'?>
<oracle.dbtools.crest.model.design.datatypes.DataTypesDesign>
<object objectType="StructuredType" objectID="47E390DE-0671-C4B1-8428-0F45CBEE18F8" name="SDO_GEOMETRY" seqName="seg_0" propertyClassName="oracle.dbtools.crest.model.design.datatypes.StructuredType" propertyParentId="DE3FC7A8-6D17-E34E-603A-3A735F2357ED" propertySourceId="" propertyTargetId=""/>
<object objectType="StructuredType" objectID="F72C39E0-D1CA-8821-2AD7-A1E95A37D3D1" name="XMLTYPE" seqName="seg_0" propertyClassName="oracle.dbtools.crest.model.design.datatypes.StructuredType" propertyParentId="DE3FC7A8-6D17-E34E-603A-3A735F2357ED" propertySourceId="" propertyTargetId=""/>
</oracle.dbtools.crest.model.design.datatypes.DataTypesDesign>
<?xml version = '1.0' encoding = 'UTF-8'?>
<StructuredType class="oracle.dbtools.crest.model.design.datatypes.StructuredType" name="SDO_GEOMETRY" directorySegmentName="seg_0" id="47E390DE-0671-C4B1-8428-0F45CBEE18F8">
<createdBy>Javier Alonso Silva</createdBy>
<createdTime>2018-06-18 14:24:30 UTC</createdTime>
<ownerDesignName>database_design</ownerDesignName>
<visible>false</visible>
<predefined>true</predefined>
<final>false</final>
<instantiable>true</instantiable>
</StructuredType>
\ No newline at end of file
<?xml version = '1.0' encoding = 'UTF-8'?>
<StructuredType class="oracle.dbtools.crest.model.design.datatypes.StructuredType" name="XMLTYPE" directorySegmentName="seg_0" id="F72C39E0-D1CA-8821-2AD7-A1E95A37D3D1">
<createdBy>Javier Alonso Silva</createdBy>
<createdTime>2018-06-18 14:24:30 UTC</createdTime>
<ownerDesignName>database_design</ownerDesignName>
<visible>false</visible>
<predefined>true</predefined>
<final>false</final>
<instantiable>true</instantiable>
</StructuredType>
\ No newline at end of file
<?xml version = '1.0' encoding = 'UTF-8'?>
<Diagram class="oracle.dbtools.crest.swingui.datatypes.DPVDataTypes" id="CFDE5FC8-D6A4-DF2D-FAA9-F1FC327377FA">
<createdBy>Javier Alonso Silva</createdBy>
<modifiedBy>Javier Alonso Silva</modifiedBy>
<createdTime>2018-06-18 14:24:30 UTC</createdTime>
<autoRoute>false</autoRoute>
<boxInbox>true</boxInbox>
<showLegend>false</showLegend>
<showLabels>true</showLabels>
<showRelAttributes>false</showRelAttributes>
<gridEnabled>false</gridEnabled>
<showGrid>false</showGrid>
<diagramColor>-1</diagramColor>
<display>false</display>
<notation>1</notation>
<objectViews>
<OView class="oracle.dbtools.crest.swingui.datatypes.TVStructuredType" oid="47E390DE-0671-C4B1-8428-0F45CBEE18F8" otype="StructuredType" vid="08D9F187-2170-179A-8933-4118C225057C">
<hideElementsInCurrentOnly>false</hideElementsInCurrentOnly>
<bounds x="20" y="20" width="100" height="100"/>
</OView>
<OView class="oracle.dbtools.crest.swingui.datatypes.TVStructuredType" oid="F72C39E0-D1CA-8821-2AD7-A1E95A37D3D1" otype="StructuredType" vid="C35D1DCC-9595-9B5E-0910-9B2BFBA28B33">
<hideElementsInCurrentOnly>false</hideElementsInCurrentOnly>
<bounds x="20" y="20" width="100" height="100"/>
</OView>
</objectViews>
</Diagram>
\ No newline at end of file
This diff is collapsed.
<?xml version="1.0" encoding="UTF-8" ?>
<design id="3C168D0F-3177-9281-C715-B5AB03BB32C4">
<models>
<model id="C5DFC5DD-35E9-B422-B2BF-B7648E7DE99B" open="true" open_d_pm="false"/>
</models>
</design>
\ No newline at end of file
<?xml version = '1.0' encoding = 'UTF-8'?>
<oracle.dbtools.crest.model.design.logical.LogicalDesign>
<object objectType="main_view" objectID="2C149101-C988-9E4D-2C9E-2746FB965570" name="Logical" visible="true"/>
</oracle.dbtools.crest.model.design.logical.LogicalDesign>
<?xml version = '1.0' encoding = 'UTF-8'?>
<LogicalDesign class="oracle.dbtools.crest.model.design.logical.LogicalDesign" name="Logical" id="6F505A55-3C56-E65E-61AB-E3E34318876E" mainViewID="2C149101-C988-9E4D-2C9E-2746FB965570">
<createdBy>Javier Alonso Silva</createdBy>
<createdTime>2018-06-18 14:24:29 UTC</createdTime>
<ownerDesignName>database_design</ownerDesignName>
<shouldBeOpen>false</shouldBeOpen>
</LogicalDesign>
\ No newline at end of file
<?xml version = '1.0' encoding = 'UTF-8'?>
<oracle.dbtools.crest.model.design.logical.LogicalDesign>
<object objectType="Entity" objectID="1558C95F-4CEC-1E30-AA15-58B7C6ACD81B" name="Metadata" seqName="seg_0" propertyClassName="oracle.dbtools.crest.model.design.logical.Entity" propertyParentId="6F505A55-3C56-E65E-61AB-E3E34318876E" propertySourceId="" propertyTargetId=""/>
<object objectType="Entity" objectID="FB782D70-50E0-0A98-4654-5E94050F8458" name="Music" seqName="seg_0" propertyClassName="oracle.dbtools.crest.model.design.logical.Entity" propertyParentId="6F505A55-3C56-E65E-61AB-E3E34318876E" propertySourceId="" propertyTargetId=""/>
<object objectType="Entity" objectID="52FEBBBF-C76E-AEF4-45C5-3341E59BD946" name="Playlist" seqName="seg_0" propertyClassName="oracle.dbtools.crest.model.design.logical.Entity" propertyParentId="6F505A55-3C56-E65E-61AB-E3E34318876E" propertySourceId="" propertyTargetId=""/>
<object objectType="Entity" objectID="312E0255-FAA7-1630-54E5-A4FCB50F6276" name="Preferences" seqName="seg_0" propertyClassName="oracle.dbtools.crest.model.design.logical.Entity" propertyParentId="6F505A55-3C56-E65E-61AB-E3E34318876E" propertySourceId="" propertyTargetId=""/>
<object objectType="Entity" objectID="B1A287E6-50CA-DB8B-0AAD-60C303A2A402" name="Statistics" seqName="seg_0" propertyClassName="oracle.dbtools.crest.model.design.logical.Entity" propertyParentId="6F505A55-3C56-E65E-61AB-E3E34318876E" propertySourceId="" propertyTargetId=""/>
<object objectType="Entity" objectID="96125017-F1D2-153D-CBAC-D12E0939CF4E" name="User" seqName="seg_0" propertyClassName="oracle.dbtools.crest.model.design.logical.Entity" propertyParentId="6F505A55-3C56-E65E-61AB-E3E34318876E" propertySourceId="" propertyTargetId=""/>
<object objectType="Relation" objectID="B934A368-41CA-2247-7505-4DDD707ADAB7" name="creates" seqName="seg_0" propertyClassName="oracle.dbtools.crest.model.design.logical.Relation" propertyParentId="6F505A55-3C56-E65E-61AB-E3E34318876E" propertySourceId="96125017-F1D2-153D-CBAC-D12E0939CF4E" propertyTargetId="B1A287E6-50CA-DB8B-0AAD-60C303A2A402"/>
<object objectType="Relation" objectID="46906DFA-66DD-2DD5-790C-7A87FFE7755C" name="has" seqName="seg_0" propertyClassName="oracle.dbtools.crest.model.design.logical.Relation" propertyParentId="6F505A55-3C56-E65E-61AB-E3E34318876E" propertySourceId="FB782D70-50E0-0A98-4654-5E94050F8458" propertyTargetId="1558C95F-4CEC-1E30-AA15-58B7C6ACD81B"/>
<object objectType="Relation" objectID="DDBAFE8B-B820-1773-EE96-8B363262CAA9" name="History" seqName="seg_0" propertyClassName="oracle.dbtools.crest.model.design.logical.Relation" propertyParentId="6F505A55-3C56-E65E-61AB-E3E34318876E" propertySourceId="96125017-F1D2-153D-CBAC-D12E0939CF4E" propertyTargetId="FB782D70-50E0-0A98-4654-5E94050F8458"/>
<object objectType="Relation" objectID="1D1B52B1-8974-5046-5AB7-7AB4BF89C08A" name="Playlist_has_Music" seqName="seg_0" propertyClassName="oracle.dbtools.crest.model.design.logical.Relation" propertyParentId="6F505A55-3C56-E65E-61AB-E3E34318876E" propertySourceId="52FEBBBF-C76E-AEF4-45C5-3341E59BD946" propertyTargetId="FB782D70-50E0-0A98-4654-5E94050F8458"/>
<object objectType="Relation" objectID="C49FD692-24A0-3030-2280-A4D5B8CDFC01" name="sets" seqName="seg_0" propertyClassName="oracle.dbtools.crest.model.design.logical.Relation" propertyParentId="6F505A55-3C56-E65E-61AB-E3E34318876E" propertySourceId="96125017-F1D2-153D-CBAC-D12E0939CF4E" propertyTargetId="312E0255-FAA7-1630-54E5-A4FCB50F6276"/>
</oracle.dbtools.crest.model.design.logical.LogicalDesign>
<?xml version = '1.0' encoding = 'UTF-8'?>
<Entity class="oracle.dbtools.crest.model.design.logical.Entity" directorySegmentName="seg_0" id="1558C95F-4CEC-1E30-AA15-58B7C6ACD81B" name="Metadata">
<createdBy>Javier Alonso Silva</createdBy>
<createdTime>2018-06-18 14:34:31 UTC</createdTime>
<ownerDesignName>database_design</ownerDesignName>
<engineerTo>
<item key="351C3A3B-985F-1B54-60FE-A46161E8F350" value="true"/>
</engineerTo>
<adequatelyNormalized>NO</adequatelyNormalized>
<expectedVolumes>0</expectedVolumes>
<fwdEngineeringStrategyName>Single Table</fwdEngineeringStrategyName>
<growthPercent>0</growthPercent>
<growthType>Year</growthType>
<maxVolumes>9999999</maxVolumes>
<minVolumes>0</minVolumes>
<normalForm>Third</normalForm>
<attributes itemClass="oracle.dbtools.crest.model.design.logical.Attribute">
<Attribute name="title" id="49089203-E88B-9C71-4BAB-AA5574F6A82F">
<createdBy>Javier Alonso Silva</createdBy>
<createdTime>2018-06-18 14:34:36 UTC</createdTime>
<ownerDesignName>database_design</ownerDesignName>
<engineerTo>
<item key="351C3A3B-985F-1B54-60FE-A46161E8F350" value="true"/>
</engineerTo>
<nullsAllowed>true</nullsAllowed>
<useDomainConstraints>false</useDomainConstraints>
<use>1</use>
<logicalDatatype>LOGDT024</logicalDatatype>
<dataTypeSize>256 CHAR</dataTypeSize>
<ownDataTypeParameters>256 CHAR,,</ownDataTypeParameters>
</Attribute>
<Attribute name="artist" id="312A4237-841B-F0D6-219B-47FD4C4AA4AD">
<createdBy>Javier Alonso Silva</createdBy>
<createdTime>2018-06-18 14:34:47 UTC</createdTime>
<ownerDesignName>database_design</ownerDesignName>
<engineerTo>
<item key="351C3A3B-985F-1B54-60FE-A46161E8F350" value="true"/>
</engineerTo>
<nullsAllowed>true</nullsAllowed>
<useDomainConstraints>false</useDomainConstraints>
<use>1</use>
<logicalDatatype>LOGDT024</logicalDatatype>
<dataTypeSize>256 CHAR</dataTypeSize>
<ownDataTypeParameters>256 CHAR,,</ownDataTypeParameters>
</Attribute>
<Attribute name="cover" id="74912055-663D-B1D1-BE49-9179459CBBCB">
<createdBy>Javier Alonso Silva</createdBy>
<createdTime>2018-06-18 14:34:59 UTC</createdTime>
<ownerDesignName>database_design</ownerDesignName>
<engineerTo>
<item key="351C3A3B-985F-1B54-60FE-A46161E8F350" value="true"/>
</engineerTo>
<nullsAllowed>true</nullsAllowed>
<useDomainConstraints>false</useDomainConstraints>
<use>1</use>
<logicalDatatype>LOGDT040</logicalDatatype>
<ownDataTypeParameters>,,</ownDataTypeParameters>
</Attribute>
<Attribute name="duration" id="1E9D1478-D7E1-147D-DAFA-C42220EE51DC">
<createdBy>Javier Alonso Silva</createdBy>
<createdTime>2018-06-18 14:35:02 UTC</createdTime>
<ownerDesignName>database_design</ownerDesignName>
<engineerTo>
<item key="351C3A3B-985F-1B54-60FE-A46161E8F350" value="true"/>
</engineerTo>
<nullsAllowed>true</nullsAllowed>
<useDomainConstraints>false</useDomainConstraints>
<use>1</use>
<logicalDatatype>LOGDT024</logicalDatatype>
<dataTypeSize>20 CHAR</dataTypeSize>
<ownDataTypeParameters>20 CHAR,,</ownDataTypeParameters>
</Attribute>
<Attribute name="file_id" id="BA20C781-6605-F30A-9E03-F6286452BDDC">
<createdBy>Javier Alonso Silva</createdBy>
<createdTime>2018-06-18 14:43:05 UTC</createdTime>
<generatorID>46906DFA-66DD-2DD5-790C-7A87FFE7755C</generatorID>
<ownerDesignName>database_design</ownerDesignName>
<engineerTo>
<item key="351C3A3B-985F-1B54-60FE-A46161E8F350" value="true"/>
</engineerTo>
<referedAttribute>CAFF56A3-E241-F64F-19BE-CEA2E258C602</referedAttribute>
<useDomainConstraints>false</useDomainConstraints>
<use>1</use>
<logicalDatatype>LOGDT024</logicalDatatype>
<dataTypeSize>256 CHAR</dataTypeSize>
<ownDataTypeParameters>,,</ownDataTypeParameters>
</Attribute>
</attributes>
</Entity>
\ No newline at end of file
<?xml version = '1.0' encoding = 'UTF-8'?>
<Entity class="oracle.dbtools.crest.model.design.logical.Entity" directorySegmentName="seg_0" id="312E0255-FAA7-1630-54E5-A4FCB50F6276" name="Preferences">
<createdBy>Javier Alonso Silva</createdBy>
<createdTime>2018-06-18 14:29:16 UTC</createdTime>
<ownerDesignName>database_design</ownerDesignName>
<engineerTo>
<item key="351C3A3B-985F-1B54-60FE-A46161E8F350" value="true"/>
</engineerTo>
<adequatelyNormalized>NO</adequatelyNormalized>
<expectedVolumes>0</expectedVolumes>
<fwdEngineeringStrategyName>Single Table</fwdEngineeringStrategyName>
<growthPercent>0</growthPercent>
<growthType>Year</growthType>
<maxVolumes>9999999</maxVolumes>
<minVolumes>0</minVolumes>
<normalForm>Third</normalForm>
<attributes itemClass="oracle.dbtools.crest.model.design.logical.Attribute">
<Attribute name="audio_quality" id="2DFD054F-D34B-E405-1BE4-892DD74BA271">
<createdBy>Javier Alonso Silva</createdBy>
<createdTime>2018-06-18 14:29:24 UTC</createdTime>
<ownerDesignName>database_design</ownerDesignName>
<engineerTo>
<item key="351C3A3B-985F-1B54-60FE-A46161E8F350" value="true"/>
</engineerTo>
<nullsAllowed>true</nullsAllowed>
<useDomainConstraints>false</useDomainConstraints>
<use>1</use>
<logicalDatatype>LOGDT024</logicalDatatype>
<dataTypeSize>5 CHAR</dataTypeSize>
<ownDataTypeParameters>5 CHAR,,</ownDataTypeParameters>
</Attribute>
<Attribute name="audio_format" id="DA295574-77E1-2B18-8034-394D422AFB44">
<createdBy>Javier Alonso Silva</createdBy>
<createdTime>2018-06-18 14:29:37 UTC</createdTime>
<ownerDesignName>database_design</ownerDesignName>
<engineerTo>
<item key="351C3A3B-985F-1B54-60FE-A46161E8F350" value="true"/>
</engineerTo>
<nullsAllowed>true</nullsAllowed>
<useDomainConstraints>false</useDomainConstraints>
<use>1</use>
<logicalDatatype>LOGDT024</logicalDatatype>
<dataTypeSize>5 CHAR</dataTypeSize>
<ownDataTypeParameters>5 CHAR,,</ownDataTypeParameters>
</Attribute>
<Attribute name="os" id="6A072B91-6717-56AE-E792-D79219943063">
<createdBy>Javier Alonso Silva</createdBy>
<createdTime>2018-06-18 14:29:54 UTC</createdTime>
<ownerDesignName>database_design</ownerDesignName>
<engineerTo>
<item key="351C3A3B-985F-1B54-60FE-A46161E8F350" value="true"/>
</engineerTo>
<nullsAllowed>true</nullsAllowed>
<useDomainConstraints>false</useDomainConstraints>
<use>1</use>
<logicalDatatype>LOGDT024</logicalDatatype>
<dataTypeSize>10 CHAR</dataTypeSize>
<ownDataTypeParameters>10 CHAR,,</ownDataTypeParameters>
</Attribute>
<Attribute name="should_ask_metadata" id="861DF039-AE33-7187-ED33-DE8065B1D145">
<createdBy>Javier Alonso Silva</createdBy>
<createdTime>2018-06-18 14:30:07 UTC</createdTime>
<ownerDesignName>database_design</ownerDesignName>
<engineerTo>
<item key="351C3A3B-985F-1B54-60FE-A46161E8F350" value="true"/>
</engineerTo>
<nullsAllowed>true</nullsAllowed>
<useDomainConstraints>false</useDomainConstraints>
<use>1</use>
<logicalDatatype>LOGDT006</logicalDatatype>
<dataTypeSize>1 BYTE</dataTypeSize>
<ownDataTypeParameters>1 BYTE,,</ownDataTypeParameters>
</Attribute>
<Attribute name="user_id" id="41D91414-1277-D3D5-F7EF-FBB7131C89A4">
<createdBy>Javier Alonso Silva</createdBy>
<createdTime>2018-06-18 14:43:31 UTC</createdTime>
<generatorID>C49FD692-24A0-3030-2280-A4D5B8CDFC01</generatorID>
<ownerDesignName>database_design</ownerDesignName>
<engineerTo>
<item key="351C3A3B-985F-1B54-60FE-A46161E8F350" value="true"/>
</engineerTo>
<referedAttribute>8775EFB1-2319-5282-E470-92105C133D68</referedAttribute>
<useDomainConstraints>false</useDomainConstraints>
<use>1</use>
<logicalDatatype>LOGDT011</logicalDatatype>
<ownDataTypeParameters>,,</ownDataTypeParameters>
</Attribute>
</attributes>
</Entity>
\ No newline at end of file
<?xml version = '1.0' encoding = 'UTF-8'?>
<Entity class="oracle.dbtools.crest.model.design.logical.Entity" directorySegmentName="seg_0" id="52FEBBBF-C76E-AEF4-45C5-3341E59BD946" name="Playlist">
<createdBy>Javier Alonso Silva</createdBy>
<createdTime>2018-06-18 14:37:34 UTC</createdTime>
<ownerDesignName>database_design</ownerDesignName>
<engineerTo>
<item key="C5DFC5DD-35E9-B422-B2BF-B7648E7DE99B" value="true"/>
</engineerTo>
<adequatelyNormalized>NO</adequatelyNormalized>
<expectedVolumes>0</expectedVolumes>
<fwdEngineeringStrategyName>Single Table</fwdEngineeringStrategyName>
<growthPercent>0</growthPercent>
<growthType>Year</growthType>
<maxVolumes>9999999</maxVolumes>
<minVolumes>0</minVolumes>
<normalForm>Third</normalForm>
<attributes itemClass="oracle.dbtools.crest.model.design.logical.Attribute">
<Attribute name="playlist_id" id="16C788DC-D5DE-47B4-78C1-EA4DE822865E">
<createdBy>Javier Alonso Silva</createdBy>
<createdTime>2018-06-18 14:37:39 UTC</createdTime>
<ownerDesignName>database_design</ownerDesignName>
<engineerTo>
<item key="C5DFC5DD-35E9-B422-B2BF-B7648E7DE99B" value="true"/>
</engineerTo>
<useDomainConstraints>false</useDomainConstraints>
<use>1</use>
<logicalDatatype>LOGDT024</logicalDatatype>
<dataTypeSize>256 CHAR</dataTypeSize>
<ownDataTypeParameters>256 CHAR,,</ownDataTypeParameters>
</Attribute>
<Attribute name="number_elements" id="50EBAA05-F745-2124-1987-2152ACF6FF08">
<createdBy>Javier Alonso Silva</createdBy>
<createdTime>2018-06-18 14:38:11 UTC</createdTime>
<ownerDesignName>database_design</ownerDesignName>
<engineerTo>
<item key="C5DFC5DD-35E9-B422-B2BF-B7648E7DE99B" value="true"/>
</engineerTo>
<nullsAllowed>true</nullsAllowed>
<useDomainConstraints>false</useDomainConstraints>
<use>1</use>
<logicalDatatype>LOGDT011</logicalDatatype>
<ownDataTypeParameters>,,</ownDataTypeParameters>
</Attribute>
<Attribute name="times_requested" id="41476BC0-DA37-E595-3F64-45358C275271">
<createdBy>Javier Alonso Silva</createdBy>
<createdTime>2018-06-18 14:39:24 UTC</createdTime>
<ownerDesignName>database_design</ownerDesignName>
<engineerTo>
<item key="C5DFC5DD-35E9-B422-B2BF-B7648E7DE99B" value="true"/>
</engineerTo>
<nullsAllowed>true</nullsAllowed>
<useDomainConstraints>false</useDomainConstraints>
<use>1</use>
<logicalDatatype>LOGDT011</logicalDatatype>
<ownDataTypeParameters>,,</ownDataTypeParameters>
</Attribute>
</attributes>
<identifiers itemClass="oracle.dbtools.crest.model.design.logical.CandidateKey">
<identifier id="E3C428C4-0B62-6F66-F2BC-DB1AEE9F9400" name="Playlist PK">
<createdBy>Javier Alonso Silva</createdBy>
<createdTime>2018-06-18 14:38:08 UTC</createdTime>
<ownerDesignName>database_design</ownerDesignName>
<shouldEngineer>false</shouldEngineer>
<engineerTo>
<item key="C5DFC5DD-35E9-B422-B2BF-B7648E7DE99B" value="false"/>
</engineerTo>
<pk>true</pk>
<usedAttributes>
<attributeRef>16C788DC-D5DE-47B4-78C1-EA4DE822865E</attributeRef>
</usedAttributes>
</identifier>
</identifiers>
</Entity>
\ No newline at end of file
<?xml version = '1.0' encoding = 'UTF-8'?>
<Entity class="oracle.dbtools.crest.model.design.logical.Entity" directorySegmentName="seg_0" id="96125017-F1D2-153D-CBAC-D12E0939CF4E" name="User">
<createdBy>Javier Alonso Silva</createdBy>
<createdTime>2018-06-18 14:28:40 UTC</createdTime>
<ownerDesignName>database_design</ownerDesignName>
<engineerTo>
<item key="C5DFC5DD-35E9-B422-B2BF-B7648E7DE99B" value="true"/>
</engineerTo>
<adequatelyNormalized>NO</adequatelyNormalized>
<expectedVolumes>0</expectedVolumes>
<fwdEngineeringStrategyName>Single Table</fwdEngineeringStrategyName>
<growthPercent>0</growthPercent>
<growthType>Year</growthType>
<maxVolumes>9999999</maxVolumes>
<minVolumes>0</minVolumes>
<normalForm>Third</normalForm>
<attributes itemClass="oracle.dbtools.crest.model.design.logical.Attribute">
<Attribute name="user_id" id="8775EFB1-2319-5282-E470-92105C133D68">
<createdBy>Javier Alonso Silva</createdBy>
<createdTime>2018-06-18 14:28:44 UTC</createdTime>
<ownerDesignName>database_design</ownerDesignName>
<engineerTo>
<item key="C5DFC5DD-35E9-B422-B2BF-B7648E7DE99B" value="true"/>
</engineerTo>
<useDomainConstraints>false</useDomainConstraints>
<use>1</use>
<logicalDatatype>LOGDT011</logicalDatatype>
<ownDataTypeParameters>,,</ownDataTypeParameters>
</Attribute>
<Attribute name="username" id="DD1E5201-1D06-B0BD-F764-99D672888063">
<createdBy>Javier Alonso Silva</createdBy>
<createdTime>2018-06-18 14:28:57 UTC</createdTime>
<ownerDesignName>database_design</ownerDesignName>
<engineerTo>
<item key="C5DFC5DD-35E9-B422-B2BF-B7648E7DE99B" value="true"/>
</engineerTo>
<nullsAllowed>true</nullsAllowed>
<useDomainConstraints>false</useDomainConstraints>
<use>1</use>
<logicalDatatype>LOGDT024</logicalDatatype>
<dataTypeSize>45 CHAR</dataTypeSize>
<ownDataTypeParameters>45 CHAR,,</ownDataTypeParameters>
</Attribute>
<Attribute name="name" id="E8A2F3A1-63F6-7D92-7D9A-B9668238C030">
<createdBy>Javier Alonso Silva</createdBy>
<createdTime>2018-06-18 14:29:07 UTC</createdTime>
<ownerDesignName>database_design</ownerDesignName>
<engineerTo>
<item key="C5DFC5DD-35E9-B422-B2BF-B7648E7DE99B" value="true"/>
</engineerTo>
<nullsAllowed>true</nullsAllowed>
<useDomainConstraints>false</useDomainConstraints>
<use>1</use>