diff --git a/community/horoscope-widget.lua b/community/horoscope-widget.lua new file mode 100644 index 0000000..e44452d --- /dev/null +++ b/community/horoscope-widget.lua @@ -0,0 +1,299 @@ +-- name = "Horoscope" +-- arguments_default = "scorpio today en" +-- type = "widget" +-- version = "1.0" +-- author = "Andrey Gavrilov" + +local json = require "json" +local horo = "" +local dialog_id = "" +local days = {"today","tomorrow","yesterday"} +local signs = {"aries","taurus","gemini","cancer","leo","virgo","libra","scorpio","sagittarius","capricorn","aquarius","pisces"} + +function on_alarm() + local args = settings:get() + ui:set_title(ui:get_default_title().." ("..args[1].." - "..args[2]..")") + http:post("https://aztro.sameerkumar.website/?sign="..args[1].."&day="..args[2],"","","horo") +end + +function on_network_result_horo(result) + local t = json.decode(result) + horo = t.description + local args = settings:get() + if args[3] == "en" then + ui:show_text(horo) + else + http:get("http://translate.googleapis.com/translate_a/single?client=gtx&sl=en&tl="..args[3].."&dt=t&q="..horo,"tran") + end +end + +function on_network_result_tran(result) + local t = json.decode(result) + local text = "" + for i, v in ipairs(t[1]) do + text = text..v[1] + end + horo = text + ui:show_text(horo) +end + +function on_click() + dialog_id = "day" + local args = settings:get() + ui:show_radio_dialog("Select date",days,get_index(days,args[2])) +end + +function on_long_click() + system:copy_to_clipboard(horo) +end + +function on_settings() + dialog_id = "setting" + ui:show_radio_dialog("Select settings",{"sign","language"}) +end + +function on_dialog_action(data) + if data == -1 then + return + end + local args = settings:get() + if dialog_id == "setting" then + if data == 1 then + dialog_id = "sign" + ui:show_radio_dialog("Select sign",signs,get_index(signs,args[1])) + elseif data == 2 then + dialog_id = "lang" + local t = json.decode(all_langs) + local langs = table_to_tables(t) + ui:show_radio_dialog("Select language",langs[2],get_index(langs[1],args[3])) + end + elseif dialog_id == "day" then + if args[2] ~= days[data] then + args[2] = days[data] + settings:set(args) + on_alarm() + end + elseif dialog_id == "sign" then + if args[1] ~= signs[data] then + args[1] = signs[data] + settings:set(args) + on_alarm() + end + elseif dialog_id == "lang" then + local t = json.decode(all_langs) + local langs = table_to_tables(t) + if args[3] ~= langs[1][data] then + args[3] = langs[1][data] + settings:set(args) + on_alarm() + end + end +end + +function table_to_tables(t) + local key = {} + local value = {} + for i,v in ipairs(t) do + table.insert(key,v.code) + table.insert(value,v.code.." ("..v.name..")") + end + return {key,value} +end + +all_langs = [[ +[ + { "code": "aa", "name": "Afar" }, + { "code": "ab", "name": "Abkhazian" }, + { "code": "ae", "name": "Avestan" }, + { "code": "af", "name": "Afrikaans" }, + { "code": "ak", "name": "Akan" }, + { "code": "am", "name": "Amharic" }, + { "code": "an", "name": "Aragonese" }, + { "code": "ar", "name": "Arabic" }, + { "code": "as", "name": "Assamese" }, + { "code": "av", "name": "Avaric" }, + { "code": "ay", "name": "Aymara" }, + { "code": "az", "name": "Azerbaijani" }, + { "code": "ba", "name": "Bashkir" }, + { "code": "be", "name": "Belarusian" }, + { "code": "bg", "name": "Bulgarian" }, + { "code": "bh", "name": "Bihari languages" }, + { "code": "bi", "name": "Bislama" }, + { "code": "bm", "name": "Bambara" }, + { "code": "bn", "name": "Bengali" }, + { "code": "bo", "name": "Tibetan" }, + { "code": "br", "name": "Breton" }, + { "code": "bs", "name": "Bosnian" }, + { "code": "ca", "name": "Catalan; Valencian" }, + { "code": "ce", "name": "Chechen" }, + { "code": "ch", "name": "Chamorro" }, + { "code": "co", "name": "Corsican" }, + { "code": "cr", "name": "Cree" }, + { "code": "cs", "name": "Czech" }, + { + "code": "cu", + "name": "Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic" + }, + { "code": "cv", "name": "Chuvash" }, + { "code": "cy", "name": "Welsh" }, + { "code": "da", "name": "Danish" }, + { "code": "de", "name": "German" }, + { "code": "dv", "name": "Divehi; Dhivehi; Maldivian" }, + { "code": "dz", "name": "Dzongkha" }, + { "code": "ee", "name": "Ewe" }, + { "code": "el", "name": "Greek, Modern (1453-)" }, + { "code": "en", "name": "English" }, + { "code": "eo", "name": "Esperanto" }, + { "code": "es", "name": "Spanish; Castilian" }, + { "code": "et", "name": "Estonian" }, + { "code": "eu", "name": "Basque" }, + { "code": "fa", "name": "Persian" }, + { "code": "ff", "name": "Fulah" }, + { "code": "fi", "name": "Finnish" }, + { "code": "fj", "name": "Fijian" }, + { "code": "fo", "name": "Faroese" }, + { "code": "fr", "name": "French" }, + { "code": "fy", "name": "Western Frisian" }, + { "code": "ga", "name": "Irish" }, + { "code": "gd", "name": "Gaelic; Scomttish Gaelic" }, + { "code": "gl", "name": "Galician" }, + { "code": "gn", "name": "Guarani" }, + { "code": "gu", "name": "Gujarati" }, + { "code": "gv", "name": "Manx" }, + { "code": "ha", "name": "Hausa" }, + { "code": "he", "name": "Hebrew" }, + { "code": "hi", "name": "Hindi" }, + { "code": "ho", "name": "Hiri Motu" }, + { "code": "hr", "name": "Croatian" }, + { "code": "ht", "name": "Haitian; Haitian Creole" }, + { "code": "hu", "name": "Hungarian" }, + { "code": "hy", "name": "Armenian" }, + { "code": "hz", "name": "Herero" }, + { + "code": "ia", + "name": "Interlingua (International Auxiliary Language Association)" + }, + { "code": "id", "name": "Indonesian" }, + { "code": "ie", "name": "Interlingue; Occidental" }, + { "code": "ig", "name": "Igbo" }, + { "code": "ii", "name": "Sichuan Yi; Nuosu" }, + { "code": "ik", "name": "Inupiaq" }, + { "code": "io", "name": "Ido" }, + { "code": "is", "name": "Icelandic" }, + { "code": "it", "name": "Italian" }, + { "code": "iu", "name": "Inuktitut" }, + { "code": "ja", "name": "Japanese" }, + { "code": "jv", "name": "Javanese" }, + { "code": "ka", "name": "Georgian" }, + { "code": "kg", "name": "Kongo" }, + { "code": "ki", "name": "Kikuyu; Gikuyu" }, + { "code": "kj", "name": "Kuanyama; Kwanyama" }, + { "code": "kk", "name": "Kazakh" }, + { "code": "kl", "name": "Kalaallisut; Greenlandic" }, + { "code": "km", "name": "Central Khmer" }, + { "code": "kn", "name": "Kannada" }, + { "code": "ko", "name": "Korean" }, + { "code": "kr", "name": "Kanuri" }, + { "code": "ks", "name": "Kashmiri" }, + { "code": "ku", "name": "Kurdish" }, + { "code": "kv", "name": "Komi" }, + { "code": "kw", "name": "Cornish" }, + { "code": "ky", "name": "Kirghiz; Kyrgyz" }, + { "code": "la", "name": "Latin" }, + { "code": "lb", "name": "Luxembourgish; Letzeburgesch" }, + { "code": "lg", "name": "Ganda" }, + { "code": "li", "name": "Limburgan; Limburger; Limburgish" }, + { "code": "ln", "name": "Lingala" }, + { "code": "lo", "name": "Lao" }, + { "code": "lt", "name": "Lithuanian" }, + { "code": "lu", "name": "Luba-Katanga" }, + { "code": "lv", "name": "Latvian" }, + { "code": "mg", "name": "Malagasy" }, + { "code": "mh", "name": "Marshallese" }, + { "code": "mi", "name": "Maori" }, + { "code": "mk", "name": "Macedonian" }, + { "code": "ml", "name": "Malayalam" }, + { "code": "mn", "name": "Mongolian" }, + { "code": "mr", "name": "Marathi" }, + { "code": "ms", "name": "Malay" }, + { "code": "mt", "name": "Maltese" }, + { "code": "my", "name": "Burmese" }, + { "code": "na", "name": "Nauru" }, + { + "code": "nb", + "name": "Bokmål, Norwegian; Norwegian Bokmål" + }, + { "code": "nd", "name": "Ndebele, North; North Ndebele" }, + { "code": "ne", "name": "Nepali" }, + { "code": "ng", "name": "Ndonga" }, + { "code": "nl", "name": "Dutch; Flemish" }, + { "code": "nn", "name": "Norwegian Nynorsk; Nynorsk, Norwegian" }, + { "code": "no", "name": "Norwegian" }, + { "code": "nr", "name": "Ndebele, South; South Ndebele" }, + { "code": "nv", "name": "Navajo; Navaho" }, + { "code": "ny", "name": "Chichewa; Chewa; Nyanja" }, + { "code": "oc", "name": "Occitan (post 1500)" }, + { "code": "oj", "name": "Ojibwa" }, + { "code": "om", "name": "Oromo" }, + { "code": "or", "name": "Oriya" }, + { "code": "os", "name": "Ossetian; Ossetic" }, + { "code": "pa", "name": "Panjabi; Punjabi" }, + { "code": "pi", "name": "Pali" }, + { "code": "pl", "name": "Polish" }, + { "code": "ps", "name": "Pushto; Pashto" }, + { "code": "pt", "name": "Portuguese" }, + { "code": "qu", "name": "Quechua" }, + { "code": "rm", "name": "Romansh" }, + { "code": "rn", "name": "Rundi" }, + { "code": "ro", "name": "Romanian; Moldavian; Moldovan" }, + { "code": "ru", "name": "Russian" }, + { "code": "rw", "name": "Kinyarwanda" }, + { "code": "sa", "name": "Sanskrit" }, + { "code": "sc", "name": "Sardinian" }, + { "code": "sd", "name": "Sindhi" }, + { "code": "se", "name": "Northern Sami" }, + { "code": "sg", "name": "Sango" }, + { "code": "si", "name": "Sinhala; Sinhalese" }, + { "code": "sk", "name": "Slovak" }, + { "code": "sl", "name": "Slovenian" }, + { "code": "sm", "name": "Samoan" }, + { "code": "sn", "name": "Shona" }, + { "code": "so", "name": "Somali" }, + { "code": "sq", "name": "Albanian" }, + { "code": "sr", "name": "Serbian" }, + { "code": "ss", "name": "Swati" }, + { "code": "st", "name": "Sotho, Southern" }, + { "code": "su", "name": "Sundanese" }, + { "code": "sv", "name": "Swedish" }, + { "code": "sw", "name": "Swahili" }, + { "code": "ta", "name": "Tamil" }, + { "code": "te", "name": "Telugu" }, + { "code": "tg", "name": "Tajik" }, + { "code": "th", "name": "Thai" }, + { "code": "ti", "name": "Tigrinya" }, + { "code": "tk", "name": "Turkmen" }, + { "code": "tl", "name": "Tagalog" }, + { "code": "tn", "name": "Tswana" }, + { "code": "to", "name": "Tonga (Tonga Islands)" }, + { "code": "tr", "name": "Turkish" }, + { "code": "ts", "name": "Tsonga" }, + { "code": "tt", "name": "Tatar" }, + { "code": "tw", "name": "Twi" }, + { "code": "ty", "name": "Tahitian" }, + { "code": "ug", "name": "Uighur; Uyghur" }, + { "code": "uk", "name": "Ukrainian" }, + { "code": "ur", "name": "Urdu" }, + { "code": "uz", "name": "Uzbek" }, + { "code": "ve", "name": "Venda" }, + { "code": "vi", "name": "Vietnamese" }, + { "code": "vo", "name": "Volapük" }, + { "code": "wa", "name": "Walloon" }, + { "code": "wo", "name": "Wolof" }, + { "code": "xh", "name": "Xhosa" }, + { "code": "yi", "name": "Yiddish" }, + { "code": "yo", "name": "Yoruba" }, + { "code": "za", "name": "Zhuang; Chuang" }, + { "code": "zh", "name": "Chinese" }, + { "code": "zu", "name": "Zulu" } +] +]]