# -*- coding: UTF-8 -*-

from xmlrpclib import ServerProxy

import sys
import string

class Lists:

    def loadLang(self):
        self.lang = {
            '' : '',
            '' : '',
            '' : '',
            '' : '',
            '' : '',
            '' : '',
            '' : '',
            '' : '',
            '' : '',
            '' : '',
            '' : '',
            '' : '',
            '' : '',
            '' : '',
            'Abkhazian' : 'abk',
            'Achinese' : 'ace',
            'Acoli' : 'ach',
            'Adangme' : 'ada',
            'Afar' : 'aar',
            'Afrihili' : 'afh',
            'Afrikaans' : 'afr',
            'Afro-Asiatic (Other)' : 'afa',
            'Akan' : 'aka',
            'Akkadian' : 'akk',
            'Albanian' : 'alb',
            'Aleut' : 'ale',
            'Algonquian languages' : 'alg',
            'Altaic (Other)' : 'tut',
            'Amharic' : 'amh',
            'Apache languages' : 'apa',
            'Arabic' : 'ara',
            'Aramaic' : 'arc',
            'Arapaho' : 'arp',
            'Araucanian' : 'arn',
            'Arawak' : 'arw',
            'Armenian' : 'arm',
            'Artificial (Other)' : 'art',
            'Assamese' : 'asm',
            'Athapascan languages' : 'ath',
            'Austronesian (Other)' : 'map',
            'Avaric' : 'ava',
            'Avestan' : 'ave',
            'Awadhi' : 'awa',
            'Aymara' : 'aym',
            'Azerbaijani' : 'aze',
            'Aztec' : 'nah',
            'Balinese' : 'ban',
            'Baltic (Other)' : 'bat',
            'Baluchi' : 'bal',
            'Bambara' : 'bam',
            'Bamileke languages' : 'bai',
            'Banda' : 'bad',
            'Bantu (Other)' : 'bnt',
            'Basa' : 'bas',
            'Bashkir' : 'bak',
            'Basque' : 'baq',
            'Beja' : 'bej',
            'Bemba' : 'bem',
            'Bengali' : 'ben',
            'Berber (Other)' : 'ber',
            'Bhojpuri' : 'bho',
            'Bihari' : 'bih',
            'Bikol' : 'bik',
            'Bini' : 'bin',
            'Bislama' : 'bis',
            'Braj' : 'bra',
            'Breton' : 'bre',
            'Buginese' : 'bug',
            'Bulgarian' : 'bul',
            'Buriat' : 'bua',
            'Burmese' : 'bur',
            'Byelorussian' : 'bel',
            'Caddo' : 'cad',
            'Carib' : 'car',
            'Catalan' : 'cat',
            'Caucasian (Other)' : 'cau',
            'Cebuano' : 'ceb',
            'Celtic (Other)' : 'cel',
            'Central American Indian (Other)' : 'cai',
            'Chagatai' : 'chg',
            'Chamorro' : 'cha',
            'Chechen' : 'che',
            'Cherokee' : 'chr',
            'Cheyenne' : 'chy',
            'Chibcha' : 'chb',
            'Chinese' : 'chi',
            'Chinook jargon' : 'chn',
            'Choctaw' : 'cho',
            'Church Slavic' : 'chu',
            'Chuvash' : 'chv',
            'Coptic' : 'cop',
            'Cornish' : 'cor',
            'Corsican' : 'cos',
            'Cree' : 'cre',
            'Creek' : 'mus',
            'Creoles and Pidgins (Other)' : 'crp',
            'Creoles and Pidgins :  English-based (Other)' : 'cpe',
            'Creoles and Pidgins :  French-based (Other)' : 'cpf',
            'Creoles and Pidgins :  Portuguese-based (Other)' : 'cpp',
            'Cushitic (Other)' : 'cus',
            'Croatian' : 'hr',
            'Czech' : 'ces',
            'Dakota' : 'dak',
            'Danish' : 'dan',
            'Delaware' : 'del',
            'Dinka' : 'din',
            'Divehi' : 'div',
            'Dogri' : 'doi',
            'Dravidian (Other)' : 'dra',
            'Duala' : 'dua',
            'Dutch' : 'dut',
            'Dutch :  Middle (ca. 1050-1350)' : 'dum',
            'Dyula' : 'dyu',
            'Dzongkha' : 'dzo',
            'Efik' : 'efi',
            'Egyptian (Ancient)' : 'egy',
            'Ekajuk' : 'eka',
            'Elamite' : 'elx',
            'English' : 'eng',
            'English :  Middle (ca. 1100-1500)' : 'enm',
            'English :  Old (ca. 450-1100)' : 'ang',
            'Eskimo (Other)' : 'esk',
            'Esperanto' : 'epo',
            'Estonian' : 'est',
            'Ewe' : 'ewe',
            'Ewondo' : 'ewo',
            'Fang' : 'fan',
            'Fanti' : 'fat',
            'Faroese' : 'fao',
            'Fijian' : 'fij',
            'Finnish' : 'fin',
            'Finno-Ugrian (Other)' : 'fiu',
            'Fon' : 'fon',
            'French' : 'fra',
            'French :  Middle (ca. 1400-1600)' : 'frm',
            'French :  Old (842- ca. 1400)' : 'fro',
            'Frisian' : 'fry',
            'Fulah' : 'ful',
            'Ga' : 'gaa',
            'Gaelic (Scots)' : 'gae',
            'Gallegan' : 'glg',
            'Ganda' : 'lug',
            'Gayo' : 'gay',
            'Geez' : 'gez',
            'Georgian' : 'geo',
            'German' : 'deu',
            'German :  Middle High (ca. 1050-1500)' : 'gmh',
            'German :  Old High (ca. 750-1050)' : 'goh',
            'Germanic (Other)' : 'gem',
            'Gilbertese' : 'gil',
            'Gondi' : 'gon',
            'Gothic' : 'got',
            'Grebo' : 'grb',
            'Greek :  Ancient (to 1453)' : 'grc',
            'Greek :  Modern (1453-)' : 'ell',
            'Greenlandic' : 'kal',
            'Guarani' : 'grn',
            'Gujarati' : 'guj',
            'Haida' : 'hai',
            'Hausa' : 'hau',
            'Hawaiian' : 'haw',
            'Hebrew' : 'heb',
            'Herero' : 'her',
            'Hiligaynon' : 'hil',
            'Himachali' : 'him',
            'Hindi' : 'hin',
            'Hiri Motu' : 'hmo',
            'Hungarian' : 'hun',
            'Hupa' : 'hup',
            'Iban' : 'iba',
            'Icelandic' : 'ice',
            'Igbo' : 'ibo',
            'Ijo' : 'ijo',
            'Iloko' : 'ilo',
            'Indic (Other)' : 'inc',
            'Indo-European (Other)' : 'ine',
            'Indonesian' : 'ind',
            'Interlingua' : 'ina',
            'Interlingue' : 'ine',
            'Inuktitut' : 'iku',
            'Inupiak' : 'ipk',
            'Iranian (Other)' : 'ira',
            'Irish' : 'gai',
            'Irish :  Old (to 900)' : 'sga',
            'Irish :  Middle (900 - 1200)' : 'mga',
            'Iroquoian languages' : 'iro',
            'Italian' : 'ita',
            'Japanese' : 'jpn',
            'Javanese' : 'jav',
            'Judeo-Arabic' : 'jrb',
            'Judeo-Persian' : 'jpr',
            'Kabyle' : 'kab',
            'Kachin' : 'kac',
            'Kamba' : 'kam',
            'Kannada' : 'kan',
            'Kanuri' : 'kau',
            'Kara-Kalpak' : 'kaa',
            'Karen' : 'kar',
            'Kashmiri' : 'kas',
            'Kawi' : 'kaw',
            'Kazakh' : 'kaz',
            'Khasi' : 'kha',
            'Khmer' : 'khm',
            'Khoisan (Other)' : 'khi',
            'Khotanese' : 'kho',
            'Kikuyu' : 'kik',
            'Kinyarwanda' : 'kin',
            'Kirghiz' : 'kir',
            'Komi' : 'kom',
            'Kongo' : 'kon',
            'Konkani' : 'kok',
            'Korean' : 'kor',
            'Kpelle' : 'kpe',
            'Kru' : 'kro',
            'Kuanyama' : 'kua',
            'Kumyk' : 'kum',
            'Kurdish' : 'kur',
            'Kurukh' : 'kru',
            'Kusaie' : 'kus',
            'Kutenai' : 'kut',
            'Ladino' : 'lad',
            'Lahnda' : 'lah',
            'Lamba' : 'lam',
            'Langue d\'Oc (post 1500)' : 'oci',
            'Lao' : 'lao',
            'Latin' : 'lat',
            'Latvian' : 'lav',
            'Letzeburgesch' : 'ltz',
            'Lezghian' : 'lez',
            'Lingala' : 'lin',
            'Lithuanian' : 'lit',
            'Lozi' : 'loz',
            'Luba-Katanga' : 'lub',
            'Luiseno' : 'lui',
            'Lunda' : 'lun',
            'Luo (Kenya and Tanzania)' : 'luo',
            'Macedonian' : 'mac',
            'Madurese' : 'mad',
            'Magahi' : 'mag',
            'Maithili' : 'mai',
            'Makasar' : 'mak',
            'Malagasy' : 'mlg',
            'Malay' : 'may',
            'Malayalam' : 'mal',
            'Maltese' : 'mlt',
            'Mandingo' : 'man',
            'Manipuri' : 'mni',
            'Manobo languages' : 'mno',
            'Manx' : 'max',
            'Maori' : 'mao',
            'Marathi' : 'mar',
            'Mari' : 'chm',
            'Marshall' : 'mah',
            'Marwari' : 'mwr',
            'Masai' : 'mas',
            'Mayan languages' : 'myn',
            'Mende' : 'men',
            'Micmac' : 'mic',
            'Minangkabau' : 'min',
            'Miscellaneous (Other)' : 'mis',
            'Mohawk' : 'moh',
            'Moldavian' : 'mol',
            'Mon-Kmer (Other)' : 'mkh',
            'Mongo' : 'lol',
            'Mongolian' : 'mon',
            'Mossi' : 'mos',
            'Multiple languages' : 'mul',
            'Munda languages' : 'mun',
            'Nauru' : 'nau',
            'Navajo' : 'nav',
            'Ndebele :  North' : 'nde',
            'Ndebele :  South' : 'nbl',
            'Ndongo' : 'ndo',
            'Nepali' : 'nep',
            'Newari' : 'new',
            'Niger-Kordofanian (Other)' : 'nic',
            'Nilo-Saharan (Other)' : 'ssa',
            'Niuean' : 'niu',
            'Norse :  Old' : 'non',
            'North American Indian' : 'nai',
            'Norwegian' : 'nor',
            'Norwegian (Nynorsk)' : 'nno',
            'Nubian languages' : 'nub',
            'Nyamwezi' : 'nym',
            'Nyanja' : 'nya',
            'Nyankole' : 'nyn',
            'Nyoro' : 'nyo',
            'Nzima' : 'nzi',
            'Ojibwa' : 'oji',
            'Oriya' : 'ori',
            'Oromo' : 'orm',
            'Osage' : 'osa',
            'Ossetic' : 'oss',
            'Otomian languages' : 'oto',
            'Pahlavi' : 'pal',
            'Palauan' : 'pau',
            'Pali' : 'pli',
            'Pampanga' : 'pam',
            'Pangasinan' : 'pag',
            'Panjabi' : 'pan',
            'Papiamento' : 'pap',
            'Papuan-Australian (Other)' : 'paa',
            'Persian' : 'fas',
            'Persian :  Old (ca 600 - 400 B.C.)' : 'peo',
            'Phoenician' : 'phn',
            'Polish' : 'pol',
            'Ponape' : 'pon',
            'Portuguese' : 'por',
            'Prakrit languages' : 'pra',
            'Provencal :  Old (to 1500)' : 'pro',
            'Pushto' : 'pus',
            'Quechua' : 'que',
            'Rhaeto-Romance' : 'roh',
            'Rajasthani' : 'raj',
            'Rarotongan' : 'rar',
            'Romance (Other)' : 'roa',
            'Romanian' : 'ron',
            'Romany' : 'rom',
            'Rundi' : 'run',
            'Russian' : 'rus',
            'Salishan languages' : 'sal',
            'Samaritan Aramaic' : 'sam',
            'Sami languages' : 'smi',
            'Samoan' : 'smo',
            'Sandawe' : 'sad',
            'Sango' : 'sag',
            'Sanskrit' : 'san',
            'Sardinian' : 'srd',
            'Scots' : 'sco',
            'Selkup' : 'sel',
            'Semitic (Other)' : 'sem',
            'Serbian' : 'sr',
            'Serbo-Croatian' : 'scr',
            'Serer' : 'srr',
            'Shan' : 'shn',
            'Shona' : 'sna',
            'Sidamo' : 'sid',
            'Siksika' : 'bla',
            'Sindhi' : 'snd',
            'Singhalese' : 'sin',
            'Sino-Tibetan (Other)' : 'sit',
            'Siouan languages' : 'sio',
            'Slavic (Other)' : 'sla',
            'Siswant' : 'ssw',
            'Slovak' : 'slk',
            'Slovenian' : 'slv',
            'Sogdian' : 'sog',
            'Somali' : 'som',
            'Songhai' : 'son',
            'Sorbian languages' : 'wen',
            'Sotho :  Northern' : 'nso',
            'Sotho :  Southern' : 'sot',
            'South American Indian (Other)' : 'sai',
            'Spanish' : 'esl',
            'Sukuma' : 'suk',
            'Sumerian' : 'sux',
            'Sudanese' : 'sun',
            'Susu' : 'sus',
            'Swahili' : 'swa',
            'Swazi' : 'ssw',
            'Swedish' : 'sve',
            'Syriac' : 'syr',
            'Tagalog' : 'tgl',
            'Tahitian' : 'tah',
            'Tajik' : 'tgk',
            'Tamashek' : 'tmh',
            'Tamil' : 'tam',
            'Tatar' : 'tat',
            'Telugu' : 'tel',
            'Tereno' : 'ter',
            'Thai' : 'tha',
            'Tibetan' : 'bod',
            'Tigre' : 'tig',
            'Tigrinya' : 'tir',
            'Timne' : 'tem',
            'Tivi' : 'tiv',
            'Tlingit' : 'tli',
            'Tonga (Nyasa)' : 'tog',
            'Tonga (Tonga Islands)' : 'ton',
            'Truk' : 'tru',
            'Tsimshian' : 'tsi',
            'Tsonga' : 'tso',
            'Tswana' : 'tsn',
            'Tumbuka' : 'tum',
            'Turkish' : 'tur',
            'Turkish :  Ottoman (1500 - 1928)' : 'ota',
            'Turkmen' : 'tuk',
            'Tuvinian' : 'tyv',
            'Twi' : 'twi',
            'Ugaritic' : 'uga',
            'Uighur' : 'uig',
            'Ukrainian' : 'ukr',
            'Umbundu' : 'umb',
            'Undetermined' : 'und',
            'Urdu' : 'urd',
            'Uzbek' : 'uzb',
            'Vai' : 'vai',
            'Venda' : 'ven',
            'Vietnamese' : 'vie',
            'Volapuek' : 'vol',
            'Votic' : 'vot',
            'Wakashan languages' : 'wak',
            'Walamo' : 'wal',
            'Waray' : 'war',
            'Washo' : 'was',
            'Welsh' : 'cym',
            'Wolof' : 'wol',
            'Xhosa' : 'xho',
            'Yakut' : 'sah',
            'Yao' : 'yao',
            'Yap' : 'yap',
            'Yiddish' : 'yid',
            'Yoruba' : 'yor',
            'Zapotec' : 'zap',
            'Zenaga' : 'zen',
            'Zhuang' : 'zha',
            'Zulu' : 'zul',
            'Zuni' : 'zun'
        }
        self.langs = self.lang.keys()
        self.langs.sort()

    def getLangs(self):
        self.loadLang()
        self.langs[1] = 'German'
        self.langs[2] = 'English'
        self.langs[3] = 'French'      
        self.langs[4] = 'Italian'
        self.langs[5] = 'Spanish'
        self.langs[6] = ''
        return self.langs

    def loadCreatorRoles(self):
        self.creatorRoles = [
            'Artist',
            'Author',
            'Journalist',
            'Cooperator',
            'Editor',
            'Group',
            'Collective',
            'Moderator',
        ]

    def getCreatorRoles(self):
        self.loadCreatorRoles()
        return self.creatorRoles

    def loadContributorRoles(self):
        self.contributorRoles = [
            'Editor',
            'Artist',
            'Author',
            'Support',
            'Label',
            'Club',
            'Group',
            'Collective',
            'Guest',
        ]

    def getContributorRoles(self):
        self.loadContributorRoles()
        return self.contributorRoles


    def loadLicenses(self):
        self.licenses = [
            'Public Domain Dedication',
            'The Founders Copyright',
            'CC: GNU GPL',
            'CC: GNU LGPL',
            'CC: Attribution',
            'CC: Attrib.-NoDerivs',
            'CC: Attrib.-NoDerivs-NonCommercial',
            'CC: Attrib.-NonCommercial',
            'CC: Attrib.-NonCommercial-ShareAlike',
            'CC: Attribution-ShareAlike',
            'CC: NoDerivs',
            'CC: NoDerivs-NonCommercial',
            'CC: NonCommercial',
            'CC: NonCommercial-ShareAlike',
            'CC: ShareAlike',
        ]

    def getLicenses(self):
        self.loadLicenses()
        return self.licenses

    def loadCountries(self):
        self.country = {
            '' : '',
            '' : '',
            '' : '',
            '' : '',
            '' : '',
            '' : '',
            '' : '',
            '' : '',
            '' : '',
            '' : '',
            '' : '',
            '' : '',
            '' : '',
            '' : '',
            '' : '',
            'Afghanistan' : 'AF',
            'Albania' : 'AL',
            'Algeria' : 'DZ',
            'American Samoa' : 'AS',
            'Andorra' : 'AD',
            'Angola' : 'AO',
            'Anguilla' : 'AI',
            'Antarctica' : 'AQ',
            'Antigua and Barbuda' : 'AG',
            'Argentina' : 'AR',
            'Armenia' : 'AM',
            'Aruba' : 'AW',
            'Australia' : 'AU',
            'Austria' : 'AT',
            'Azerbaijan' : 'AZ',
            'Bahamas' : 'BS',
            'Bahrain' : 'BH',
            'Bangladesh' : 'BD',
            'Barbados' : 'BB',
            'Belarus' : 'BY',
            'Belgium' : 'BE',
            'Belize' : 'BZ',
            'Benin' : 'BJ',
            'Bermuda' : 'BM',
            'Bhutan' : 'BT',
            'Bolivia' : 'BO',
            'Bosnia and Herzegovina' : 'BA',
            'Botswana' : 'BW',
            'Bouvet Island' : 'BV',
            'Brazil' : 'BR',
            'British Indian Ocean Territory' : 'IO',
            'Brunei Darussalam' : 'BN',
            'Bulgaria' : 'BG',
            'Burkina Faso' : 'BF',
            'Burundi' : 'BI',
            'Cambodia' : 'KH',
            'Cameroon' : 'CM',
            'Canada' : 'CA',
            'Cape Verde' : 'CV',
            'Cayman Islands' : 'KY',
            'Central African Republic' : 'CF',
            'Chad' : 'TD',
            'Chile' : 'CL',
            'China' : 'CN',
            'Christmas Island' : 'CX',
            'Cocos (Keeling) Islands' : 'CC',
            'Colombia' : 'CO',
            'Comoros' : 'KM',
            'Congo' : 'CG',
            'Congo, The Democratic Republic of the' : 'CD',
            'Cook Islands' : 'CK',
            'Costa Rica' : 'CR',
            'Cote D Ivoire' : 'CI',
            'Croatia' : 'HR',
            'Cuba' : 'CU',
            'Cyprus' : 'CY',
            'Czech Republic' : 'CZ',
            'Denmark' : 'DK',
            'Djibouti' : 'DJ',
            'Dominica' : 'DM',
            'Dominican Republic' : 'DO',
            'Ecuador' : 'EC',
            'Egypt' : 'EG',
            'El Salvador' : 'SV',
            'Equatorial Guinea' : 'GQ',
            'Eritrea' : 'ER',
            'Estonia' : 'EE',
            'Ethiopia' : 'ET',
            'Falkland Islands (Malvinas)' : 'FK',
            'Faroe Islands' : 'FO',
            'Fiji' : 'FJ',
            'Finland' : 'FI',
            'France' : 'FR',
            'French Guiana' : 'GF',
            'French Polynesia' : 'PF',
            'French Southern Territories' : 'TF',
            'Gabon' : 'GA',
            'Gambia' : 'GM',
            'Georgia' : 'GE',
            'Germany' : 'DE',
            'Ghana' : 'GH',
            'Gibraltar' : 'GI',
            'Greece' : 'GR',
            'Greenland' : 'GL',
            'Grenada' : 'GD',
            'Guadeloupe' : 'GP',
            'Guam' : 'GU',
            'Guatemala' : 'GT',
            'Guinea' : 'GN',
            'Guinea-Bissau' : 'GW',
            'Guyana' : 'GY',
            'Haiti' : 'HT',
            'Heard Island and McDonald Islands' : 'HM',
            'Holy See (Vatican City State)' : 'VA',
            'Honduras' : 'HN',
            'Hong Kong' : 'HK',
            'Hungary' : 'HU',
            'Iceland' : 'IS',
            'India' : 'IN',
            'Indonesia' : 'ID',
            'Iran, Islamic Republic of' : 'IR',
            'Iraq' : 'IQ',
            'Ireland' : 'IE',
            'Israel' : 'IL',
            'Italy' : 'IT',
            'Jamaica' : 'JM',
            'Japan' : 'JP',
            'Jordan' : 'JO',
            'Kazakhstan' : 'KZ',
            'Kenya' : 'KE',
            'Kiribati' : 'KI',
            'Korea, Democratic Peoples Republic of' : 'KP',
            'Korea, Republic of' : 'KR',
            'Kuwait' : 'KW',
            'Kyrgyzstan' : 'KG',
            'Lao Peoples Democratic Republic' : 'LA',
            'Latvia' : 'LV',
            'Lebanon' : 'LB',
            'Lesotho' : 'LS',
            'Liberia' : 'LR',
            'Libyan Arab Jamahiriya' : 'LY',
            'Liechtenstein' : 'LI',
            'Lithuania' : 'LT',
            'Luxembourg' : 'LU',
            'Macao' : 'MO',
            'Macedonia, The former Yugoslav Republic of' : 'MK',
            'Madagascar' : 'MG',
            'Malawi' : 'MW',
            'Malaysia' : 'MY',
            'Maldives' : 'MV',
            'Mali' : 'ML',
            'Malta' : 'MT',
            'Marshall Islands' : 'MH',
            'Martinique' : 'MQ',
            'Mauritania' : 'MR',
            'Mauritius' : 'MU',
            'Mayotte' : 'YT',
            'Mexico' : 'MX',
            'Micronesia, Federated States of' : 'FM',
            'Moldova, Republic of' : 'MD',
            'Monaco' : 'MC',
            'Mongolia' : 'MN',
            'Montserrat' : 'MS',
            'Morocco' : 'MA',
            'Mozambique' : 'MZ',
            'Myanmar' : 'MM',
            'Namibia' : 'NA',
            'Nauru' : 'NR',
            'Nepal' : 'NP',
            'Netherlands' : 'NL',
            'Netherlands Antilles' : 'AN',
            'New Caledonia' : 'NC',
            'New Zealand' : 'NZ',
            'Nicaragua' : 'NI',
            'Niger' : 'NE',
            'Nigeria' : 'NG',
            'Niue' : 'NU',
            'Norfolk Island' : 'NF',
            'Northern Mariana Islands' : 'MP',
            'Norway' : 'NO',
            'Oman' : 'OM',
            'Pakistan' : 'PK',
            'Palau' : 'PW',
            'Palestinian Territory, occupied' : 'PS',
            'Panama' : 'PA',
            'Papua New Guinea' : 'PG',
            'Paraguay' : 'PY',
            'Peru' : 'PE',
            'Philippines' : 'PH',
            'Pitcairn' : 'PN',
            'Poland' : 'PL',
            'Portugal' : 'PT',
            'Puerto Rico' : 'PR',
            'Qatar' : 'QA',
            'Reunion' : 'RE',
            'Romania' : 'RO',
            'Russian Federation' : 'RU',
            'Rwanda' : 'RW',
            'Saint Helena' : 'SH',
            'Saint Kitts and Nevis' : 'KN',
            'Saint Lucia' : 'LC',
            'Saint Pierre and Miquelon' : 'PM',
            'Saint Vincent and the Grenadines' : 'VC',
            'Samoa' : 'WS',
            'San Marino' : 'SM',
            'Sao Tome and Principe' : 'ST',
            'Saudi Arabia' : 'SA',
            'Senegal' : 'SN',
            'Serbia and Montenegro' : 'CS',
            'Seychelles' : 'SC',
            'Sierra Leone' : 'SL',
            'Singapore' : 'SG',
            'Slovakia' : 'SK',
            'Slovenia' : 'SI',
            'Solomon Islands' : 'SB',
            'Somalia' : 'SO',
            'South Africa' : 'ZA',
            'South Georgia and the South Sandwich Islands' : 'GS',
            'Spain' : 'ES',
            'Sri Lanka' : 'LK',
            'Sudan' : 'SD',
            'Suriname' : 'SR',
            'Svalbard and Jan Mayen' : 'SJ',
            'Swaziland' : 'SZ',
            'Sweden' : 'SE',
            'Switzerland' : 'CH',
            'Syrian Arab Republic' : 'SY',
            'Taiwan, Province of China' : 'TW',
            'Tajikistan' : 'TJ',
            'Tanzania, United Republic of' : 'TZ',
            'Thailand' : 'TH',
            'Timor-Leste' : 'TL',
            'Togo' : 'TG',
            'Tokelau' : 'TK',
            'Tonga' : 'TO',
            'Trinidad and Tobago' : 'TT',
            'Tunisia' : 'TN',
            'Turkey' : 'TR',
            'Turkmenistan' : 'TM',
            'Turks and Caicos Islands' : 'TC',
            'Tuvalu' : 'TV',
            'Uganda' : 'UG',
            'UkrainE' : 'UA',
            'United Arab Emirates' : 'AE',
            'United Kingdom' : 'GB',
            'United States' : 'US',
            'United States Minor Outlying Islands' : 'UM',
            'Uruguay' : 'UY',
            'Uzbekistan' : 'UZ',
            'Vanuatu' : 'VU',
            'Vatican City State see HOLY ' : 'EE',
            'Venezuela' : 'VE',
            'Viet Nam' : 'VN',
            'Virgin Islands, British' : 'VG',
            'Virgin Islands, U.S.' : 'VI',
            'Wallis and Futuna' : 'WF',
            'Western Sahara' : 'EH',
            'Yemen' : 'YE',
            'Zambia' : 'ZM',
            'Zimbabwe' : 'W ',
        }
        self.countries = self.country.keys()
        self.countries.sort()

    def getCountries(self):
        self.loadCountries()
        self.countries[1] = 'Albania'
        self.countries[2] = 'Bulgaria'
        self.countries[3] = 'Canada'
        self.countries[4] = 'Germany'
        self.countries[5] = 'France'
        self.countries[6] = 'Italy'
        self.countries[7] = 'Latvia'
        self.countries[8] = 'Spain'
        self.countries[9] = 'Thailand'
        self.countries[10] = 'United Kingdom'
        self.countries[11] = 'United States'
        self.countries[12] = ''
        return self.countries

    def loadContainers(self,username):
        self.container = {}
        if username != '':
            xmlrpcurl="http://www.reboot.fm/RPC2/"
            server = ServerProxy(xmlrpcurl)
            listarr = server.radio.getProgramsByUser(username)
            self.containers = []
            for h in listarr:
                try:
                    if(string.find(sys.getdefaultencoding(),'utf_8')<0):
                        self.container[h['container_name'],h['program_name']] = '/%s/%s' % (h['container_name'].encode('latin-1'), h['program_name'].encode('latin-1'))
                    else:
                        self.container[h['container_name'],h['program_name']] = '/%s/%s' % (h['container_name'], h['program_name'])
                except:
                    import traceback
                    traceback.print_exc()
        self.containers = self.container.values()
        self.containers.sort()


    def getContainers(self,username):
        self.loadContainers(username)
        return self.containers
