summaryrefslogtreecommitdiff
path: root/plugin.video.newsblender/resources
diff options
context:
space:
mode:
Diffstat (limited to 'plugin.video.newsblender/resources')
-rw-r--r--plugin.video.newsblender/resources/__init__.py0
-rw-r--r--plugin.video.newsblender/resources/images/fanart.jpgbin0 -> 152460 bytes
-rw-r--r--plugin.video.newsblender/resources/images/icon.pngbin0 -> 68955 bytes
-rw-r--r--plugin.video.newsblender/resources/images/screenshot01.pngbin0 -> 678403 bytes
-rw-r--r--plugin.video.newsblender/resources/images/screenshot02.pngbin0 -> 684648 bytes
-rw-r--r--plugin.video.newsblender/resources/images/screenshot03.pngbin0 -> 828536 bytes
-rw-r--r--plugin.video.newsblender/resources/iso3166-1.json1677
-rw-r--r--plugin.video.newsblender/resources/iso639-1.json752
-rw-r--r--plugin.video.newsblender/resources/language/resource.language.en_gb/strings.po41
-rw-r--r--plugin.video.newsblender/resources/lib/__init__.py0
-rw-r--r--plugin.video.newsblender/resources/lib/newsblender.py272
-rw-r--r--plugin.video.newsblender/resources/settings.xml6
12 files changed, 2748 insertions, 0 deletions
diff --git a/plugin.video.newsblender/resources/__init__.py b/plugin.video.newsblender/resources/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/plugin.video.newsblender/resources/__init__.py
diff --git a/plugin.video.newsblender/resources/images/fanart.jpg b/plugin.video.newsblender/resources/images/fanart.jpg
new file mode 100644
index 0000000..feac538
--- /dev/null
+++ b/plugin.video.newsblender/resources/images/fanart.jpg
Binary files differ
diff --git a/plugin.video.newsblender/resources/images/icon.png b/plugin.video.newsblender/resources/images/icon.png
new file mode 100644
index 0000000..1323860
--- /dev/null
+++ b/plugin.video.newsblender/resources/images/icon.png
Binary files differ
diff --git a/plugin.video.newsblender/resources/images/screenshot01.png b/plugin.video.newsblender/resources/images/screenshot01.png
new file mode 100644
index 0000000..49ed9b5
--- /dev/null
+++ b/plugin.video.newsblender/resources/images/screenshot01.png
Binary files differ
diff --git a/plugin.video.newsblender/resources/images/screenshot02.png b/plugin.video.newsblender/resources/images/screenshot02.png
new file mode 100644
index 0000000..59f5d0f
--- /dev/null
+++ b/plugin.video.newsblender/resources/images/screenshot02.png
Binary files differ
diff --git a/plugin.video.newsblender/resources/images/screenshot03.png b/plugin.video.newsblender/resources/images/screenshot03.png
new file mode 100644
index 0000000..8d1d9e4
--- /dev/null
+++ b/plugin.video.newsblender/resources/images/screenshot03.png
Binary files differ
diff --git a/plugin.video.newsblender/resources/iso3166-1.json b/plugin.video.newsblender/resources/iso3166-1.json
new file mode 100644
index 0000000..2834482
--- /dev/null
+++ b/plugin.video.newsblender/resources/iso3166-1.json
@@ -0,0 +1,1677 @@
+{
+ "3166-1": [
+ {
+ "alpha_2": "AW",
+ "alpha_3": "ABW",
+ "name": "Aruba",
+ "numeric": "533"
+ },
+ {
+ "alpha_2": "AF",
+ "alpha_3": "AFG",
+ "name": "Afghanistan",
+ "numeric": "004",
+ "official_name": "Islamic Republic of Afghanistan"
+ },
+ {
+ "alpha_2": "AO",
+ "alpha_3": "AGO",
+ "name": "Angola",
+ "numeric": "024",
+ "official_name": "Republic of Angola"
+ },
+ {
+ "alpha_2": "AI",
+ "alpha_3": "AIA",
+ "name": "Anguilla",
+ "numeric": "660"
+ },
+ {
+ "alpha_2": "AX",
+ "alpha_3": "ALA",
+ "name": "Åland Islands",
+ "numeric": "248"
+ },
+ {
+ "alpha_2": "AL",
+ "alpha_3": "ALB",
+ "name": "Albania",
+ "numeric": "008",
+ "official_name": "Republic of Albania"
+ },
+ {
+ "alpha_2": "AD",
+ "alpha_3": "AND",
+ "name": "Andorra",
+ "numeric": "020",
+ "official_name": "Principality of Andorra"
+ },
+ {
+ "alpha_2": "AE",
+ "alpha_3": "ARE",
+ "name": "United Arab Emirates",
+ "numeric": "784"
+ },
+ {
+ "alpha_2": "AR",
+ "alpha_3": "ARG",
+ "name": "Argentina",
+ "numeric": "032",
+ "official_name": "Argentine Republic"
+ },
+ {
+ "alpha_2": "AM",
+ "alpha_3": "ARM",
+ "name": "Armenia",
+ "numeric": "051",
+ "official_name": "Republic of Armenia"
+ },
+ {
+ "alpha_2": "AS",
+ "alpha_3": "ASM",
+ "name": "American Samoa",
+ "numeric": "016"
+ },
+ {
+ "alpha_2": "AQ",
+ "alpha_3": "ATA",
+ "name": "Antarctica",
+ "numeric": "010"
+ },
+ {
+ "alpha_2": "TF",
+ "alpha_3": "ATF",
+ "name": "French Southern Territories",
+ "numeric": "260"
+ },
+ {
+ "alpha_2": "AG",
+ "alpha_3": "ATG",
+ "name": "Antigua and Barbuda",
+ "numeric": "028"
+ },
+ {
+ "alpha_2": "AU",
+ "alpha_3": "AUS",
+ "name": "Australia",
+ "numeric": "036"
+ },
+ {
+ "alpha_2": "AT",
+ "alpha_3": "AUT",
+ "name": "Austria",
+ "numeric": "040",
+ "official_name": "Republic of Austria"
+ },
+ {
+ "alpha_2": "AZ",
+ "alpha_3": "AZE",
+ "name": "Azerbaijan",
+ "numeric": "031",
+ "official_name": "Republic of Azerbaijan"
+ },
+ {
+ "alpha_2": "BI",
+ "alpha_3": "BDI",
+ "name": "Burundi",
+ "numeric": "108",
+ "official_name": "Republic of Burundi"
+ },
+ {
+ "alpha_2": "BE",
+ "alpha_3": "BEL",
+ "name": "Belgium",
+ "numeric": "056",
+ "official_name": "Kingdom of Belgium"
+ },
+ {
+ "alpha_2": "BJ",
+ "alpha_3": "BEN",
+ "name": "Benin",
+ "numeric": "204",
+ "official_name": "Republic of Benin"
+ },
+ {
+ "alpha_2": "BQ",
+ "alpha_3": "BES",
+ "name": "Bonaire, Sint Eustatius and Saba",
+ "numeric": "535",
+ "official_name": "Bonaire, Sint Eustatius and Saba"
+ },
+ {
+ "alpha_2": "BF",
+ "alpha_3": "BFA",
+ "name": "Burkina Faso",
+ "numeric": "854"
+ },
+ {
+ "alpha_2": "BD",
+ "alpha_3": "BGD",
+ "name": "Bangladesh",
+ "numeric": "050",
+ "official_name": "People's Republic of Bangladesh"
+ },
+ {
+ "alpha_2": "BG",
+ "alpha_3": "BGR",
+ "name": "Bulgaria",
+ "numeric": "100",
+ "official_name": "Republic of Bulgaria"
+ },
+ {
+ "alpha_2": "BH",
+ "alpha_3": "BHR",
+ "name": "Bahrain",
+ "numeric": "048",
+ "official_name": "Kingdom of Bahrain"
+ },
+ {
+ "alpha_2": "BS",
+ "alpha_3": "BHS",
+ "name": "Bahamas",
+ "numeric": "044",
+ "official_name": "Commonwealth of the Bahamas"
+ },
+ {
+ "alpha_2": "BA",
+ "alpha_3": "BIH",
+ "name": "Bosnia and Herzegovina",
+ "numeric": "070",
+ "official_name": "Republic of Bosnia and Herzegovina"
+ },
+ {
+ "alpha_2": "BL",
+ "alpha_3": "BLM",
+ "name": "Saint Barthélemy",
+ "numeric": "652"
+ },
+ {
+ "alpha_2": "BY",
+ "alpha_3": "BLR",
+ "name": "Belarus",
+ "numeric": "112",
+ "official_name": "Republic of Belarus"
+ },
+ {
+ "alpha_2": "BZ",
+ "alpha_3": "BLZ",
+ "name": "Belize",
+ "numeric": "084"
+ },
+ {
+ "alpha_2": "BM",
+ "alpha_3": "BMU",
+ "name": "Bermuda",
+ "numeric": "060"
+ },
+ {
+ "alpha_2": "BO",
+ "alpha_3": "BOL",
+ "common_name": "Bolivia",
+ "name": "Bolivia, Plurinational State of",
+ "numeric": "068",
+ "official_name": "Plurinational State of Bolivia"
+ },
+ {
+ "alpha_2": "BR",
+ "alpha_3": "BRA",
+ "name": "Brazil",
+ "numeric": "076",
+ "official_name": "Federative Republic of Brazil"
+ },
+ {
+ "alpha_2": "BB",
+ "alpha_3": "BRB",
+ "name": "Barbados",
+ "numeric": "052"
+ },
+ {
+ "alpha_2": "BN",
+ "alpha_3": "BRN",
+ "name": "Brunei Darussalam",
+ "numeric": "096"
+ },
+ {
+ "alpha_2": "BT",
+ "alpha_3": "BTN",
+ "name": "Bhutan",
+ "numeric": "064",
+ "official_name": "Kingdom of Bhutan"
+ },
+ {
+ "alpha_2": "BV",
+ "alpha_3": "BVT",
+ "name": "Bouvet Island",
+ "numeric": "074"
+ },
+ {
+ "alpha_2": "BW",
+ "alpha_3": "BWA",
+ "name": "Botswana",
+ "numeric": "072",
+ "official_name": "Republic of Botswana"
+ },
+ {
+ "alpha_2": "CF",
+ "alpha_3": "CAF",
+ "name": "Central African Republic",
+ "numeric": "140"
+ },
+ {
+ "alpha_2": "CA",
+ "alpha_3": "CAN",
+ "name": "Canada",
+ "numeric": "124"
+ },
+ {
+ "alpha_2": "CC",
+ "alpha_3": "CCK",
+ "name": "Cocos (Keeling) Islands",
+ "numeric": "166"
+ },
+ {
+ "alpha_2": "CH",
+ "alpha_3": "CHE",
+ "name": "Switzerland",
+ "numeric": "756",
+ "official_name": "Swiss Confederation"
+ },
+ {
+ "alpha_2": "CL",
+ "alpha_3": "CHL",
+ "name": "Chile",
+ "numeric": "152",
+ "official_name": "Republic of Chile"
+ },
+ {
+ "alpha_2": "CN",
+ "alpha_3": "CHN",
+ "name": "China",
+ "numeric": "156",
+ "official_name": "People's Republic of China"
+ },
+ {
+ "alpha_2": "CI",
+ "alpha_3": "CIV",
+ "name": "Côte d'Ivoire",
+ "numeric": "384",
+ "official_name": "Republic of Côte d'Ivoire"
+ },
+ {
+ "alpha_2": "CM",
+ "alpha_3": "CMR",
+ "name": "Cameroon",
+ "numeric": "120",
+ "official_name": "Republic of Cameroon"
+ },
+ {
+ "alpha_2": "CD",
+ "alpha_3": "COD",
+ "name": "Congo, The Democratic Republic of the",
+ "numeric": "180"
+ },
+ {
+ "alpha_2": "CG",
+ "alpha_3": "COG",
+ "name": "Congo",
+ "numeric": "178",
+ "official_name": "Republic of the Congo"
+ },
+ {
+ "alpha_2": "CK",
+ "alpha_3": "COK",
+ "name": "Cook Islands",
+ "numeric": "184"
+ },
+ {
+ "alpha_2": "CO",
+ "alpha_3": "COL",
+ "name": "Colombia",
+ "numeric": "170",
+ "official_name": "Republic of Colombia"
+ },
+ {
+ "alpha_2": "KM",
+ "alpha_3": "COM",
+ "name": "Comoros",
+ "numeric": "174",
+ "official_name": "Union of the Comoros"
+ },
+ {
+ "alpha_2": "CV",
+ "alpha_3": "CPV",
+ "name": "Cabo Verde",
+ "numeric": "132",
+ "official_name": "Republic of Cabo Verde"
+ },
+ {
+ "alpha_2": "CR",
+ "alpha_3": "CRI",
+ "name": "Costa Rica",
+ "numeric": "188",
+ "official_name": "Republic of Costa Rica"
+ },
+ {
+ "alpha_2": "CU",
+ "alpha_3": "CUB",
+ "name": "Cuba",
+ "numeric": "192",
+ "official_name": "Republic of Cuba"
+ },
+ {
+ "alpha_2": "CW",
+ "alpha_3": "CUW",
+ "name": "Curaçao",
+ "numeric": "531",
+ "official_name": "Curaçao"
+ },
+ {
+ "alpha_2": "CX",
+ "alpha_3": "CXR",
+ "name": "Christmas Island",
+ "numeric": "162"
+ },
+ {
+ "alpha_2": "KY",
+ "alpha_3": "CYM",
+ "name": "Cayman Islands",
+ "numeric": "136"
+ },
+ {
+ "alpha_2": "CY",
+ "alpha_3": "CYP",
+ "name": "Cyprus",
+ "numeric": "196",
+ "official_name": "Republic of Cyprus"
+ },
+ {
+ "alpha_2": "CZ",
+ "alpha_3": "CZE",
+ "name": "Czechia",
+ "numeric": "203",
+ "official_name": "Czech Republic"
+ },
+ {
+ "alpha_2": "DE",
+ "alpha_3": "DEU",
+ "name": "Germany",
+ "numeric": "276",
+ "official_name": "Federal Republic of Germany"
+ },
+ {
+ "alpha_2": "DJ",
+ "alpha_3": "DJI",
+ "name": "Djibouti",
+ "numeric": "262",
+ "official_name": "Republic of Djibouti"
+ },
+ {
+ "alpha_2": "DM",
+ "alpha_3": "DMA",
+ "name": "Dominica",
+ "numeric": "212",
+ "official_name": "Commonwealth of Dominica"
+ },
+ {
+ "alpha_2": "DK",
+ "alpha_3": "DNK",
+ "name": "Denmark",
+ "numeric": "208",
+ "official_name": "Kingdom of Denmark"
+ },
+ {
+ "alpha_2": "DO",
+ "alpha_3": "DOM",
+ "name": "Dominican Republic",
+ "numeric": "214"
+ },
+ {
+ "alpha_2": "DZ",
+ "alpha_3": "DZA",
+ "name": "Algeria",
+ "numeric": "012",
+ "official_name": "People's Democratic Republic of Algeria"
+ },
+ {
+ "alpha_2": "EC",
+ "alpha_3": "ECU",
+ "name": "Ecuador",
+ "numeric": "218",
+ "official_name": "Republic of Ecuador"
+ },
+ {
+ "alpha_2": "EG",
+ "alpha_3": "EGY",
+ "name": "Egypt",
+ "numeric": "818",
+ "official_name": "Arab Republic of Egypt"
+ },
+ {
+ "alpha_2": "ER",
+ "alpha_3": "ERI",
+ "name": "Eritrea",
+ "numeric": "232",
+ "official_name": "the State of Eritrea"
+ },
+ {
+ "alpha_2": "EH",
+ "alpha_3": "ESH",
+ "name": "Western Sahara",
+ "numeric": "732"
+ },
+ {
+ "alpha_2": "ES",
+ "alpha_3": "ESP",
+ "name": "Spain",
+ "numeric": "724",
+ "official_name": "Kingdom of Spain"
+ },
+ {
+ "alpha_2": "EE",
+ "alpha_3": "EST",
+ "name": "Estonia",
+ "numeric": "233",
+ "official_name": "Republic of Estonia"
+ },
+ {
+ "alpha_2": "ET",
+ "alpha_3": "ETH",
+ "name": "Ethiopia",
+ "numeric": "231",
+ "official_name": "Federal Democratic Republic of Ethiopia"
+ },
+ {
+ "alpha_2": "FI",
+ "alpha_3": "FIN",
+ "name": "Finland",
+ "numeric": "246",
+ "official_name": "Republic of Finland"
+ },
+ {
+ "alpha_2": "FJ",
+ "alpha_3": "FJI",
+ "name": "Fiji",
+ "numeric": "242",
+ "official_name": "Republic of Fiji"
+ },
+ {
+ "alpha_2": "FK",
+ "alpha_3": "FLK",
+ "name": "Falkland Islands (Malvinas)",
+ "numeric": "238"
+ },
+ {
+ "alpha_2": "FR",
+ "alpha_3": "FRA",
+ "name": "France",
+ "numeric": "250",
+ "official_name": "French Republic"
+ },
+ {
+ "alpha_2": "FO",
+ "alpha_3": "FRO",
+ "name": "Faroe Islands",
+ "numeric": "234"
+ },
+ {
+ "alpha_2": "FM",
+ "alpha_3": "FSM",
+ "name": "Micronesia, Federated States of",
+ "numeric": "583",
+ "official_name": "Federated States of Micronesia"
+ },
+ {
+ "alpha_2": "GA",
+ "alpha_3": "GAB",
+ "name": "Gabon",
+ "numeric": "266",
+ "official_name": "Gabonese Republic"
+ },
+ {
+ "alpha_2": "GB",
+ "alpha_3": "GBR",
+ "name": "United Kingdom",
+ "numeric": "826",
+ "official_name": "United Kingdom of Great Britain and Northern Ireland"
+ },
+ {
+ "alpha_2": "GE",
+ "alpha_3": "GEO",
+ "name": "Georgia",
+ "numeric": "268"
+ },
+ {
+ "alpha_2": "GG",
+ "alpha_3": "GGY",
+ "name": "Guernsey",
+ "numeric": "831"
+ },
+ {
+ "alpha_2": "GH",
+ "alpha_3": "GHA",
+ "name": "Ghana",
+ "numeric": "288",
+ "official_name": "Republic of Ghana"
+ },
+ {
+ "alpha_2": "GI",
+ "alpha_3": "GIB",
+ "name": "Gibraltar",
+ "numeric": "292"
+ },
+ {
+ "alpha_2": "GN",
+ "alpha_3": "GIN",
+ "name": "Guinea",
+ "numeric": "324",
+ "official_name": "Republic of Guinea"
+ },
+ {
+ "alpha_2": "GP",
+ "alpha_3": "GLP",
+ "name": "Guadeloupe",
+ "numeric": "312"
+ },
+ {
+ "alpha_2": "GM",
+ "alpha_3": "GMB",
+ "name": "Gambia",
+ "numeric": "270",
+ "official_name": "Islamic Republic of the Gambia"
+ },
+ {
+ "alpha_2": "GW",
+ "alpha_3": "GNB",
+ "name": "Guinea-Bissau",
+ "numeric": "624",
+ "official_name": "Republic of Guinea-Bissau"
+ },
+ {
+ "alpha_2": "GQ",
+ "alpha_3": "GNQ",
+ "name": "Equatorial Guinea",
+ "numeric": "226",
+ "official_name": "Republic of Equatorial Guinea"
+ },
+ {
+ "alpha_2": "GR",
+ "alpha_3": "GRC",
+ "name": "Greece",
+ "numeric": "300",
+ "official_name": "Hellenic Republic"
+ },
+ {
+ "alpha_2": "GD",
+ "alpha_3": "GRD",
+ "name": "Grenada",
+ "numeric": "308"
+ },
+ {
+ "alpha_2": "GL",
+ "alpha_3": "GRL",
+ "name": "Greenland",
+ "numeric": "304"
+ },
+ {
+ "alpha_2": "GT",
+ "alpha_3": "GTM",
+ "name": "Guatemala",
+ "numeric": "320",
+ "official_name": "Republic of Guatemala"
+ },
+ {
+ "alpha_2": "GF",
+ "alpha_3": "GUF",
+ "name": "French Guiana",
+ "numeric": "254"
+ },
+ {
+ "alpha_2": "GU",
+ "alpha_3": "GUM",
+ "name": "Guam",
+ "numeric": "316"
+ },
+ {
+ "alpha_2": "GY",
+ "alpha_3": "GUY",
+ "name": "Guyana",
+ "numeric": "328",
+ "official_name": "Republic of Guyana"
+ },
+ {
+ "alpha_2": "HK",
+ "alpha_3": "HKG",
+ "name": "Hong Kong",
+ "numeric": "344",
+ "official_name": "Hong Kong Special Administrative Region of China"
+ },
+ {
+ "alpha_2": "HM",
+ "alpha_3": "HMD",
+ "name": "Heard Island and McDonald Islands",
+ "numeric": "334"
+ },
+ {
+ "alpha_2": "HN",
+ "alpha_3": "HND",
+ "name": "Honduras",
+ "numeric": "340",
+ "official_name": "Republic of Honduras"
+ },
+ {
+ "alpha_2": "HR",
+ "alpha_3": "HRV",
+ "name": "Croatia",
+ "numeric": "191",
+ "official_name": "Republic of Croatia"
+ },
+ {
+ "alpha_2": "HT",
+ "alpha_3": "HTI",
+ "name": "Haiti",
+ "numeric": "332",
+ "official_name": "Republic of Haiti"
+ },
+ {
+ "alpha_2": "HU",
+ "alpha_3": "HUN",
+ "name": "Hungary",
+ "numeric": "348",
+ "official_name": "Hungary"
+ },
+ {
+ "alpha_2": "ID",
+ "alpha_3": "IDN",
+ "name": "Indonesia",
+ "numeric": "360",
+ "official_name": "Republic of Indonesia"
+ },
+ {
+ "alpha_2": "IM",
+ "alpha_3": "IMN",
+ "name": "Isle of Man",
+ "numeric": "833"
+ },
+ {
+ "alpha_2": "IN",
+ "alpha_3": "IND",
+ "name": "India",
+ "numeric": "356",
+ "official_name": "Republic of India"
+ },
+ {
+ "alpha_2": "IO",
+ "alpha_3": "IOT",
+ "name": "British Indian Ocean Territory",
+ "numeric": "086"
+ },
+ {
+ "alpha_2": "IE",
+ "alpha_3": "IRL",
+ "name": "Ireland",
+ "numeric": "372"
+ },
+ {
+ "alpha_2": "IR",
+ "alpha_3": "IRN",
+ "name": "Iran, Islamic Republic of",
+ "numeric": "364",
+ "official_name": "Islamic Republic of Iran"
+ },
+ {
+ "alpha_2": "IQ",
+ "alpha_3": "IRQ",
+ "name": "Iraq",
+ "numeric": "368",
+ "official_name": "Republic of Iraq"
+ },
+ {
+ "alpha_2": "IS",
+ "alpha_3": "ISL",
+ "name": "Iceland",
+ "numeric": "352",
+ "official_name": "Republic of Iceland"
+ },
+ {
+ "alpha_2": "IL",
+ "alpha_3": "ISR",
+ "name": "Israel",
+ "numeric": "376",
+ "official_name": "State of Israel"
+ },
+ {
+ "alpha_2": "IT",
+ "alpha_3": "ITA",
+ "name": "Italy",
+ "numeric": "380",
+ "official_name": "Italian Republic"
+ },
+ {
+ "alpha_2": "JM",
+ "alpha_3": "JAM",
+ "name": "Jamaica",
+ "numeric": "388"
+ },
+ {
+ "alpha_2": "JE",
+ "alpha_3": "JEY",
+ "name": "Jersey",
+ "numeric": "832"
+ },
+ {
+ "alpha_2": "JO",
+ "alpha_3": "JOR",
+ "name": "Jordan",
+ "numeric": "400",
+ "official_name": "Hashemite Kingdom of Jordan"
+ },
+ {
+ "alpha_2": "JP",
+ "alpha_3": "JPN",
+ "name": "Japan",
+ "numeric": "392"
+ },
+ {
+ "alpha_2": "KZ",
+ "alpha_3": "KAZ",
+ "name": "Kazakhstan",
+ "numeric": "398",
+ "official_name": "Republic of Kazakhstan"
+ },
+ {
+ "alpha_2": "KE",
+ "alpha_3": "KEN",
+ "name": "Kenya",
+ "numeric": "404",
+ "official_name": "Republic of Kenya"
+ },
+ {
+ "alpha_2": "KG",
+ "alpha_3": "KGZ",
+ "name": "Kyrgyzstan",
+ "numeric": "417",
+ "official_name": "Kyrgyz Republic"
+ },
+ {
+ "alpha_2": "KH",
+ "alpha_3": "KHM",
+ "name": "Cambodia",
+ "numeric": "116",
+ "official_name": "Kingdom of Cambodia"
+ },
+ {
+ "alpha_2": "KI",
+ "alpha_3": "KIR",
+ "name": "Kiribati",
+ "numeric": "296",
+ "official_name": "Republic of Kiribati"
+ },
+ {
+ "alpha_2": "KN",
+ "alpha_3": "KNA",
+ "name": "Saint Kitts and Nevis",
+ "numeric": "659"
+ },
+ {
+ "alpha_2": "KR",
+ "alpha_3": "KOR",
+ "name": "Korea, Republic of",
+ "numeric": "410"
+ },
+ {
+ "alpha_2": "KW",
+ "alpha_3": "KWT",
+ "name": "Kuwait",
+ "numeric": "414",
+ "official_name": "State of Kuwait"
+ },
+ {
+ "alpha_2": "LA",
+ "alpha_3": "LAO",
+ "name": "Lao People's Democratic Republic",
+ "numeric": "418"
+ },
+ {
+ "alpha_2": "LB",
+ "alpha_3": "LBN",
+ "name": "Lebanon",
+ "numeric": "422",
+ "official_name": "Lebanese Republic"
+ },
+ {
+ "alpha_2": "LR",
+ "alpha_3": "LBR",
+ "name": "Liberia",
+ "numeric": "430",
+ "official_name": "Republic of Liberia"
+ },
+ {
+ "alpha_2": "LY",
+ "alpha_3": "LBY",
+ "name": "Libya",
+ "numeric": "434",
+ "official_name": "Libya"
+ },
+ {
+ "alpha_2": "LC",
+ "alpha_3": "LCA",
+ "name": "Saint Lucia",
+ "numeric": "662"
+ },
+ {
+ "alpha_2": "LI",
+ "alpha_3": "LIE",
+ "name": "Liechtenstein",
+ "numeric": "438",
+ "official_name": "Principality of Liechtenstein"
+ },
+ {
+ "alpha_2": "LK",
+ "alpha_3": "LKA",
+ "name": "Sri Lanka",
+ "numeric": "144",
+ "official_name": "Democratic Socialist Republic of Sri Lanka"
+ },
+ {
+ "alpha_2": "LS",
+ "alpha_3": "LSO",
+ "name": "Lesotho",
+ "numeric": "426",
+ "official_name": "Kingdom of Lesotho"
+ },
+ {
+ "alpha_2": "LT",
+ "alpha_3": "LTU",
+ "name": "Lithuania",
+ "numeric": "440",
+ "official_name": "Republic of Lithuania"
+ },
+ {
+ "alpha_2": "LU",
+ "alpha_3": "LUX",
+ "name": "Luxembourg",
+ "numeric": "442",
+ "official_name": "Grand Duchy of Luxembourg"
+ },
+ {
+ "alpha_2": "LV",
+ "alpha_3": "LVA",
+ "name": "Latvia",
+ "numeric": "428",
+ "official_name": "Republic of Latvia"
+ },
+ {
+ "alpha_2": "MO",
+ "alpha_3": "MAC",
+ "name": "Macao",
+ "numeric": "446",
+ "official_name": "Macao Special Administrative Region of China"
+ },
+ {
+ "alpha_2": "MF",
+ "alpha_3": "MAF",
+ "name": "Saint Martin (French part)",
+ "numeric": "663"
+ },
+ {
+ "alpha_2": "MA",
+ "alpha_3": "MAR",
+ "name": "Morocco",
+ "numeric": "504",
+ "official_name": "Kingdom of Morocco"
+ },
+ {
+ "alpha_2": "MC",
+ "alpha_3": "MCO",
+ "name": "Monaco",
+ "numeric": "492",
+ "official_name": "Principality of Monaco"
+ },
+ {
+ "alpha_2": "MD",
+ "alpha_3": "MDA",
+ "common_name": "Moldova",
+ "name": "Moldova, Republic of",
+ "numeric": "498",
+ "official_name": "Republic of Moldova"
+ },
+ {
+ "alpha_2": "MG",
+ "alpha_3": "MDG",
+ "name": "Madagascar",
+ "numeric": "450",
+ "official_name": "Republic of Madagascar"
+ },
+ {
+ "alpha_2": "MV",
+ "alpha_3": "MDV",
+ "name": "Maldives",
+ "numeric": "462",
+ "official_name": "Republic of Maldives"
+ },
+ {
+ "alpha_2": "MX",
+ "alpha_3": "MEX",
+ "name": "Mexico",
+ "numeric": "484",
+ "official_name": "United Mexican States"
+ },
+ {
+ "alpha_2": "MH",
+ "alpha_3": "MHL",
+ "name": "Marshall Islands",
+ "numeric": "584",
+ "official_name": "Republic of the Marshall Islands"
+ },
+ {
+ "alpha_2": "MK",
+ "alpha_3": "MKD",
+ "name": "Macedonia, Republic of",
+ "numeric": "807",
+ "official_name": "The Former Yugoslav Republic of Macedonia"
+ },
+ {
+ "alpha_2": "ML",
+ "alpha_3": "MLI",
+ "name": "Mali",
+ "numeric": "466",
+ "official_name": "Republic of Mali"
+ },
+ {
+ "alpha_2": "MT",
+ "alpha_3": "MLT",
+ "name": "Malta",
+ "numeric": "470",
+ "official_name": "Republic of Malta"
+ },
+ {
+ "alpha_2": "MM",
+ "alpha_3": "MMR",
+ "name": "Myanmar",
+ "numeric": "104",
+ "official_name": "Republic of Myanmar"
+ },
+ {
+ "alpha_2": "ME",
+ "alpha_3": "MNE",
+ "name": "Montenegro",
+ "numeric": "499",
+ "official_name": "Montenegro"
+ },
+ {
+ "alpha_2": "MN",
+ "alpha_3": "MNG",
+ "name": "Mongolia",
+ "numeric": "496"
+ },
+ {
+ "alpha_2": "MP",
+ "alpha_3": "MNP",
+ "name": "Northern Mariana Islands",
+ "numeric": "580",
+ "official_name": "Commonwealth of the Northern Mariana Islands"
+ },
+ {
+ "alpha_2": "MZ",
+ "alpha_3": "MOZ",
+ "name": "Mozambique",
+ "numeric": "508",
+ "official_name": "Republic of Mozambique"
+ },
+ {
+ "alpha_2": "MR",
+ "alpha_3": "MRT",
+ "name": "Mauritania",
+ "numeric": "478",
+ "official_name": "Islamic Republic of Mauritania"
+ },
+ {
+ "alpha_2": "MS",
+ "alpha_3": "MSR",
+ "name": "Montserrat",
+ "numeric": "500"
+ },
+ {
+ "alpha_2": "MQ",
+ "alpha_3": "MTQ",
+ "name": "Martinique",
+ "numeric": "474"
+ },
+ {
+ "alpha_2": "MU",
+ "alpha_3": "MUS",
+ "name": "Mauritius",
+ "numeric": "480",
+ "official_name": "Republic of Mauritius"
+ },
+ {
+ "alpha_2": "MW",
+ "alpha_3": "MWI",
+ "name": "Malawi",
+ "numeric": "454",
+ "official_name": "Republic of Malawi"
+ },
+ {
+ "alpha_2": "MY",
+ "alpha_3": "MYS",
+ "name": "Malaysia",
+ "numeric": "458"
+ },
+ {
+ "alpha_2": "YT",
+ "alpha_3": "MYT",
+ "name": "Mayotte",
+ "numeric": "175"
+ },
+ {
+ "alpha_2": "NA",
+ "alpha_3": "NAM",
+ "name": "Namibia",
+ "numeric": "516",
+ "official_name": "Republic of Namibia"
+ },
+ {
+ "alpha_2": "NC",
+ "alpha_3": "NCL",
+ "name": "New Caledonia",
+ "numeric": "540"
+ },
+ {
+ "alpha_2": "NE",
+ "alpha_3": "NER",
+ "name": "Niger",
+ "numeric": "562",
+ "official_name": "Republic of the Niger"
+ },
+ {
+ "alpha_2": "NF",
+ "alpha_3": "NFK",
+ "name": "Norfolk Island",
+ "numeric": "574"
+ },
+ {
+ "alpha_2": "NG",
+ "alpha_3": "NGA",
+ "name": "Nigeria",
+ "numeric": "566",
+ "official_name": "Federal Republic of Nigeria"
+ },
+ {
+ "alpha_2": "NI",
+ "alpha_3": "NIC",
+ "name": "Nicaragua",
+ "numeric": "558",
+ "official_name": "Republic of Nicaragua"
+ },
+ {
+ "alpha_2": "NU",
+ "alpha_3": "NIU",
+ "name": "Niue",
+ "numeric": "570",
+ "official_name": "Niue"
+ },
+ {
+ "alpha_2": "NL",
+ "alpha_3": "NLD",
+ "name": "Netherlands",
+ "numeric": "528",
+ "official_name": "Kingdom of the Netherlands"
+ },
+ {
+ "alpha_2": "NO",
+ "alpha_3": "NOR",
+ "name": "Norway",
+ "numeric": "578",
+ "official_name": "Kingdom of Norway"
+ },
+ {
+ "alpha_2": "NP",
+ "alpha_3": "NPL",
+ "name": "Nepal",
+ "numeric": "524",
+ "official_name": "Federal Democratic Republic of Nepal"
+ },
+ {
+ "alpha_2": "NR",
+ "alpha_3": "NRU",
+ "name": "Nauru",
+ "numeric": "520",
+ "official_name": "Republic of Nauru"
+ },
+ {
+ "alpha_2": "NZ",
+ "alpha_3": "NZL",
+ "name": "New Zealand",
+ "numeric": "554"
+ },
+ {
+ "alpha_2": "OM",
+ "alpha_3": "OMN",
+ "name": "Oman",
+ "numeric": "512",
+ "official_name": "Sultanate of Oman"
+ },
+ {
+ "alpha_2": "PK",
+ "alpha_3": "PAK",
+ "name": "Pakistan",
+ "numeric": "586",
+ "official_name": "Islamic Republic of Pakistan"
+ },
+ {
+ "alpha_2": "PA",
+ "alpha_3": "PAN",
+ "name": "Panama",
+ "numeric": "591",
+ "official_name": "Republic of Panama"
+ },
+ {
+ "alpha_2": "PN",
+ "alpha_3": "PCN",
+ "name": "Pitcairn",
+ "numeric": "612"
+ },
+ {
+ "alpha_2": "PE",
+ "alpha_3": "PER",
+ "name": "Peru",
+ "numeric": "604",
+ "official_name": "Republic of Peru"
+ },
+ {
+ "alpha_2": "PH",
+ "alpha_3": "PHL",
+ "name": "Philippines",
+ "numeric": "608",
+ "official_name": "Republic of the Philippines"
+ },
+ {
+ "alpha_2": "PW",
+ "alpha_3": "PLW",
+ "name": "Palau",
+ "numeric": "585",
+ "official_name": "Republic of Palau"
+ },
+ {
+ "alpha_2": "PG",
+ "alpha_3": "PNG",
+ "name": "Papua New Guinea",
+ "numeric": "598",
+ "official_name": "Independent State of Papua New Guinea"
+ },
+ {
+ "alpha_2": "PL",
+ "alpha_3": "POL",
+ "name": "Poland",
+ "numeric": "616",
+ "official_name": "Republic of Poland"
+ },
+ {
+ "alpha_2": "PR",
+ "alpha_3": "PRI",
+ "name": "Puerto Rico",
+ "numeric": "630"
+ },
+ {
+ "alpha_2": "KP",
+ "alpha_3": "PRK",
+ "name": "Korea, Democratic People's Republic of",
+ "numeric": "408",
+ "official_name": "Democratic People's Republic of Korea"
+ },
+ {
+ "alpha_2": "PT",
+ "alpha_3": "PRT",
+ "name": "Portugal",
+ "numeric": "620",
+ "official_name": "Portuguese Republic"
+ },
+ {
+ "alpha_2": "PY",
+ "alpha_3": "PRY",
+ "name": "Paraguay",
+ "numeric": "600",
+ "official_name": "Republic of Paraguay"
+ },
+ {
+ "alpha_2": "PS",
+ "alpha_3": "PSE",
+ "name": "Palestine, State of",
+ "numeric": "275",
+ "official_name": "the State of Palestine"
+ },
+ {
+ "alpha_2": "PF",
+ "alpha_3": "PYF",
+ "name": "French Polynesia",
+ "numeric": "258"
+ },
+ {
+ "alpha_2": "QA",
+ "alpha_3": "QAT",
+ "name": "Qatar",
+ "numeric": "634",
+ "official_name": "State of Qatar"
+ },
+ {
+ "alpha_2": "RE",
+ "alpha_3": "REU",
+ "name": "Réunion",
+ "numeric": "638"
+ },
+ {
+ "alpha_2": "RO",
+ "alpha_3": "ROU",
+ "name": "Romania",
+ "numeric": "642"
+ },
+ {
+ "alpha_2": "RU",
+ "alpha_3": "RUS",
+ "name": "Russian Federation",
+ "numeric": "643"
+ },
+ {
+ "alpha_2": "RW",
+ "alpha_3": "RWA",
+ "name": "Rwanda",
+ "numeric": "646",
+ "official_name": "Rwandese Republic"
+ },
+ {
+ "alpha_2": "SA",
+ "alpha_3": "SAU",
+ "name": "Saudi Arabia",
+ "numeric": "682",
+ "official_name": "Kingdom of Saudi Arabia"
+ },
+ {
+ "alpha_2": "SD",
+ "alpha_3": "SDN",
+ "name": "Sudan",
+ "numeric": "729",
+ "official_name": "Republic of the Sudan"
+ },
+ {
+ "alpha_2": "SN",
+ "alpha_3": "SEN",
+ "name": "Senegal",
+ "numeric": "686",
+ "official_name": "Republic of Senegal"
+ },
+ {
+ "alpha_2": "SG",
+ "alpha_3": "SGP",
+ "name": "Singapore",
+ "numeric": "702",
+ "official_name": "Republic of Singapore"
+ },
+ {
+ "alpha_2": "GS",
+ "alpha_3": "SGS",
+ "name": "South Georgia and the South Sandwich Islands",
+ "numeric": "239"
+ },
+ {
+ "alpha_2": "SH",
+ "alpha_3": "SHN",
+ "name": "Saint Helena, Ascension and Tristan da Cunha",
+ "numeric": "654"
+ },
+ {
+ "alpha_2": "SJ",
+ "alpha_3": "SJM",
+ "name": "Svalbard and Jan Mayen",
+ "numeric": "744"
+ },
+ {
+ "alpha_2": "SB",
+ "alpha_3": "SLB",
+ "name": "Solomon Islands",
+ "numeric": "090"
+ },
+ {
+ "alpha_2": "SL",
+ "alpha_3": "SLE",
+ "name": "Sierra Leone",
+ "numeric": "694",
+ "official_name": "Republic of Sierra Leone"
+ },
+ {
+ "alpha_2": "SV",
+ "alpha_3": "SLV",
+ "name": "El Salvador",
+ "numeric": "222",
+ "official_name": "Republic of El Salvador"
+ },
+ {
+ "alpha_2": "SM",
+ "alpha_3": "SMR",
+ "name": "San Marino",
+ "numeric": "674",
+ "official_name": "Republic of San Marino"
+ },
+ {
+ "alpha_2": "SO",
+ "alpha_3": "SOM",
+ "name": "Somalia",
+ "numeric": "706",
+ "official_name": "Federal Republic of Somalia"
+ },
+ {
+ "alpha_2": "PM",
+ "alpha_3": "SPM",
+ "name": "Saint Pierre and Miquelon",
+ "numeric": "666"
+ },
+ {
+ "alpha_2": "RS",
+ "alpha_3": "SRB",
+ "name": "Serbia",
+ "numeric": "688",
+ "official_name": "Republic of Serbia"
+ },
+ {
+ "alpha_2": "SS",
+ "alpha_3": "SSD",
+ "name": "South Sudan",
+ "numeric": "728",
+ "official_name": "Republic of South Sudan"
+ },
+ {
+ "alpha_2": "ST",
+ "alpha_3": "STP",
+ "name": "Sao Tome and Principe",
+ "numeric": "678",
+ "official_name": "Democratic Republic of Sao Tome and Principe"
+ },
+ {
+ "alpha_2": "SR",
+ "alpha_3": "SUR",
+ "name": "Suriname",
+ "numeric": "740",
+ "official_name": "Republic of Suriname"
+ },
+ {
+ "alpha_2": "SK",
+ "alpha_3": "SVK",
+ "name": "Slovakia",
+ "numeric": "703",
+ "official_name": "Slovak Republic"
+ },
+ {
+ "alpha_2": "SI",
+ "alpha_3": "SVN",
+ "name": "Slovenia",
+ "numeric": "705",
+ "official_name": "Republic of Slovenia"
+ },
+ {
+ "alpha_2": "SE",
+ "alpha_3": "SWE",
+ "name": "Sweden",
+ "numeric": "752",
+ "official_name": "Kingdom of Sweden"
+ },
+ {
+ "alpha_2": "SZ",
+ "alpha_3": "SWZ",
+ "name": "Swaziland",
+ "numeric": "748",
+ "official_name": "Kingdom of Swaziland"
+ },
+ {
+ "alpha_2": "SX",
+ "alpha_3": "SXM",
+ "name": "Sint Maarten (Dutch part)",
+ "numeric": "534",
+ "official_name": "Sint Maarten (Dutch part)"
+ },
+ {
+ "alpha_2": "SC",
+ "alpha_3": "SYC",
+ "name": "Seychelles",
+ "numeric": "690",
+ "official_name": "Republic of Seychelles"
+ },
+ {
+ "alpha_2": "SY",
+ "alpha_3": "SYR",
+ "name": "Syrian Arab Republic",
+ "numeric": "760"
+ },
+ {
+ "alpha_2": "TC",
+ "alpha_3": "TCA",
+ "name": "Turks and Caicos Islands",
+ "numeric": "796"
+ },
+ {
+ "alpha_2": "TD",
+ "alpha_3": "TCD",
+ "name": "Chad",
+ "numeric": "148",
+ "official_name": "Republic of Chad"
+ },
+ {
+ "alpha_2": "TG",
+ "alpha_3": "TGO",
+ "name": "Togo",
+ "numeric": "768",
+ "official_name": "Togolese Republic"
+ },
+ {
+ "alpha_2": "TH",
+ "alpha_3": "THA",
+ "name": "Thailand",
+ "numeric": "764",
+ "official_name": "Kingdom of Thailand"
+ },
+ {
+ "alpha_2": "TJ",
+ "alpha_3": "TJK",
+ "name": "Tajikistan",
+ "numeric": "762",
+ "official_name": "Republic of Tajikistan"
+ },
+ {
+ "alpha_2": "TK",
+ "alpha_3": "TKL",
+ "name": "Tokelau",
+ "numeric": "772"
+ },
+ {
+ "alpha_2": "TM",
+ "alpha_3": "TKM",
+ "name": "Turkmenistan",
+ "numeric": "795"
+ },
+ {
+ "alpha_2": "TL",
+ "alpha_3": "TLS",
+ "name": "Timor-Leste",
+ "numeric": "626",
+ "official_name": "Democratic Republic of Timor-Leste"
+ },
+ {
+ "alpha_2": "TO",
+ "alpha_3": "TON",
+ "name": "Tonga",
+ "numeric": "776",
+ "official_name": "Kingdom of Tonga"
+ },
+ {
+ "alpha_2": "TT",
+ "alpha_3": "TTO",
+ "name": "Trinidad and Tobago",
+ "numeric": "780",
+ "official_name": "Republic of Trinidad and Tobago"
+ },
+ {
+ "alpha_2": "TN",
+ "alpha_3": "TUN",
+ "name": "Tunisia",
+ "numeric": "788",
+ "official_name": "Republic of Tunisia"
+ },
+ {
+ "alpha_2": "TR",
+ "alpha_3": "TUR",
+ "name": "Turkey",
+ "numeric": "792",
+ "official_name": "Republic of Turkey"
+ },
+ {
+ "alpha_2": "TV",
+ "alpha_3": "TUV",
+ "name": "Tuvalu",
+ "numeric": "798"
+ },
+ {
+ "alpha_2": "TW",
+ "alpha_3": "TWN",
+ "common_name": "Taiwan",
+ "name": "Taiwan, Province of China",
+ "numeric": "158",
+ "official_name": "Taiwan, Province of China"
+ },
+ {
+ "alpha_2": "TZ",
+ "alpha_3": "TZA",
+ "common_name": "Tanzania",
+ "name": "Tanzania, United Republic of",
+ "numeric": "834",
+ "official_name": "United Republic of Tanzania"
+ },
+ {
+ "alpha_2": "UG",
+ "alpha_3": "UGA",
+ "name": "Uganda",
+ "numeric": "800",
+ "official_name": "Republic of Uganda"
+ },
+ {
+ "alpha_2": "UA",
+ "alpha_3": "UKR",
+ "name": "Ukraine",
+ "numeric": "804"
+ },
+ {
+ "alpha_2": "UM",
+ "alpha_3": "UMI",
+ "name": "United States Minor Outlying Islands",
+ "numeric": "581"
+ },
+ {
+ "alpha_2": "UY",
+ "alpha_3": "URY",
+ "name": "Uruguay",
+ "numeric": "858",
+ "official_name": "Eastern Republic of Uruguay"
+ },
+ {
+ "alpha_2": "US",
+ "alpha_3": "USA",
+ "name": "United States",
+ "numeric": "840",
+ "official_name": "United States of America"
+ },
+ {
+ "alpha_2": "UZ",
+ "alpha_3": "UZB",
+ "name": "Uzbekistan",
+ "numeric": "860",
+ "official_name": "Republic of Uzbekistan"
+ },
+ {
+ "alpha_2": "VA",
+ "alpha_3": "VAT",
+ "name": "Holy See (Vatican City State)",
+ "numeric": "336"
+ },
+ {
+ "alpha_2": "VC",
+ "alpha_3": "VCT",
+ "name": "Saint Vincent and the Grenadines",
+ "numeric": "670"
+ },
+ {
+ "alpha_2": "VE",
+ "alpha_3": "VEN",
+ "common_name": "Venezuela",
+ "name": "Venezuela, Bolivarian Republic of",
+ "numeric": "862",
+ "official_name": "Bolivarian Republic of Venezuela"
+ },
+ {
+ "alpha_2": "VG",
+ "alpha_3": "VGB",
+ "name": "Virgin Islands, British",
+ "numeric": "092",
+ "official_name": "British Virgin Islands"
+ },
+ {
+ "alpha_2": "VI",
+ "alpha_3": "VIR",
+ "name": "Virgin Islands, U.S.",
+ "numeric": "850",
+ "official_name": "Virgin Islands of the United States"
+ },
+ {
+ "alpha_2": "VN",
+ "alpha_3": "VNM",
+ "common_name": "Vietnam",
+ "name": "Viet Nam",
+ "numeric": "704",
+ "official_name": "Socialist Republic of Viet Nam"
+ },
+ {
+ "alpha_2": "VU",
+ "alpha_3": "VUT",
+ "name": "Vanuatu",
+ "numeric": "548",
+ "official_name": "Republic of Vanuatu"
+ },
+ {
+ "alpha_2": "WF",
+ "alpha_3": "WLF",
+ "name": "Wallis and Futuna",
+ "numeric": "876"
+ },
+ {
+ "alpha_2": "WS",
+ "alpha_3": "WSM",
+ "name": "Samoa",
+ "numeric": "882",
+ "official_name": "Independent State of Samoa"
+ },
+ {
+ "alpha_2": "YE",
+ "alpha_3": "YEM",
+ "name": "Yemen",
+ "numeric": "887",
+ "official_name": "Republic of Yemen"
+ },
+ {
+ "alpha_2": "ZA",
+ "alpha_3": "ZAF",
+ "name": "South Africa",
+ "numeric": "710",
+ "official_name": "Republic of South Africa"
+ },
+ {
+ "alpha_2": "ZM",
+ "alpha_3": "ZMB",
+ "name": "Zambia",
+ "numeric": "894",
+ "official_name": "Republic of Zambia"
+ },
+ {
+ "alpha_2": "ZW",
+ "alpha_3": "ZWE",
+ "name": "Zimbabwe",
+ "numeric": "716",
+ "official_name": "Republic of Zimbabwe"
+ }
+ ]
+}
diff --git a/plugin.video.newsblender/resources/iso639-1.json b/plugin.video.newsblender/resources/iso639-1.json
new file mode 100644
index 0000000..df6005c
--- /dev/null
+++ b/plugin.video.newsblender/resources/iso639-1.json
@@ -0,0 +1,752 @@
+{
+ "639-1": [
+ {
+ "code": "ab",
+ "name": "Abkhaz"
+ },
+ {
+ "code": "aa",
+ "name": "Afar"
+ },
+ {
+ "code": "af",
+ "name": "Afrikaans"
+ },
+ {
+ "code": "ak",
+ "name": "Akan"
+ },
+ {
+ "code": "sq",
+ "name": "Albanian"
+ },
+ {
+ "code": "am",
+ "name": "Amharic"
+ },
+ {
+ "code": "ar",
+ "name": "Arabic"
+ },
+ {
+ "code": "an",
+ "name": "Aragonese"
+ },
+ {
+ "code": "hy",
+ "name": "Armenian"
+ },
+ {
+ "code": "as",
+ "name": "Assamese"
+ },
+ {
+ "code": "av",
+ "name": "Avaric"
+ },
+ {
+ "code": "ae",
+ "name": "Avestan"
+ },
+ {
+ "code": "ay",
+ "name": "Aymara"
+ },
+ {
+ "code": "az",
+ "name": "Azerbaijani"
+ },
+ {
+ "code": "bm",
+ "name": "Bambara"
+ },
+ {
+ "code": "ba",
+ "name": "Bashkir"
+ },
+ {
+ "code": "eu",
+ "name": "Basque"
+ },
+ {
+ "code": "be",
+ "name": "Belarusian"
+ },
+ {
+ "code": "bn",
+ "name": "Bengali; Bangla"
+ },
+ {
+ "code": "bh",
+ "name": "Bihari"
+ },
+ {
+ "code": "bi",
+ "name": "Bislama"
+ },
+ {
+ "code": "bs",
+ "name": "Bosnian"
+ },
+ {
+ "code": "br",
+ "name": "Breton"
+ },
+ {
+ "code": "bg",
+ "name": "Bulgarian"
+ },
+ {
+ "code": "my",
+ "name": "Burmese"
+ },
+ {
+ "code": "ca",
+ "name": "Catalan; Valencian"
+ },
+ {
+ "code": "ch",
+ "name": "Chamorro"
+ },
+ {
+ "code": "ce",
+ "name": "Chechen"
+ },
+ {
+ "code": "ny",
+ "name": "Chichewa; Chewa; Nyanja"
+ },
+ {
+ "code": "zh",
+ "name": "Chinese"
+ },
+ {
+ "code": "cn",
+ "name": "Chinese"
+ },
+ {
+ "code": "ud",
+ "name": "Udmurt"
+ },
+ {
+ "code": "cv",
+ "name": "Chuvash"
+ },
+ {
+ "code": "kw",
+ "name": "Cornish"
+ },
+ {
+ "code": "co",
+ "name": "Corsican"
+ },
+ {
+ "code": "cr",
+ "name": "Cree"
+ },
+ {
+ "code": "hr",
+ "name": "Croatian"
+ },
+ {
+ "code": "cs",
+ "name": "Czech"
+ },
+ {
+ "code": "da",
+ "name": "Danish"
+ },
+ {
+ "code": "dv",
+ "name": "Divehi; Dhivehi; Maldivian;"
+ },
+ {
+ "code": "nl",
+ "name": "Dutch"
+ },
+ {
+ "code": "dz",
+ "name": "Dzongkha"
+ },
+ {
+ "code": "en",
+ "name": "English"
+ },
+ {
+ "code": "eo",
+ "name": "Esperanto"
+ },
+ {
+ "code": "et",
+ "name": "Estonian"
+ },
+ {
+ "code": "ee",
+ "name": "Ewe"
+ },
+ {
+ "code": "fo",
+ "name": "Faroese"
+ },
+ {
+ "code": "fj",
+ "name": "Fijian"
+ },
+ {
+ "code": "fi",
+ "name": "Finnish"
+ },
+ {
+ "code": "fr",
+ "name": "French"
+ },
+ {
+ "code": "ff",
+ "name": "Fula; Fulah; Pulaar; Pular"
+ },
+ {
+ "code": "gl",
+ "name": "Galician"
+ },
+ {
+ "code": "ka",
+ "name": "Georgian"
+ },
+ {
+ "code": "de",
+ "name": "German"
+ },
+ {
+ "code": "el",
+ "name": "Greek, Modern"
+ },
+ {
+ "code": "gn",
+ "name": "Guaraní"
+ },
+ {
+ "code": "gu",
+ "name": "Gujarati"
+ },
+ {
+ "code": "ht",
+ "name": "Haitian; Haitian Creole"
+ },
+ {
+ "code": "ha",
+ "name": "Hausa"
+ },
+ {
+ "code": "he",
+ "name": "Hebrew (modern)"
+ },
+ {
+ "code": "hz",
+ "name": "Herero"
+ },
+ {
+ "code": "hi",
+ "name": "Hindi"
+ },
+ {
+ "code": "ho",
+ "name": "Hiri Motu"
+ },
+ {
+ "code": "hu",
+ "name": "Hungarian"
+ },
+ {
+ "code": "ia",
+ "name": "Interlingua"
+ },
+ {
+ "code": "id",
+ "name": "Indonesian"
+ },
+ {
+ "code": "ie",
+ "name": "Interlingue"
+ },
+ {
+ "code": "ga",
+ "name": "Irish"
+ },
+ {
+ "code": "ig",
+ "name": "Igbo"
+ },
+ {
+ "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": "kl",
+ "name": "Kalaallisut, Greenlandic"
+ },
+ {
+ "code": "kn",
+ "name": "Kannada"
+ },
+ {
+ "code": "kr",
+ "name": "Kanuri"
+ },
+ {
+ "code": "ks",
+ "name": "Kashmiri"
+ },
+ {
+ "code": "kk",
+ "name": "Kazakh"
+ },
+ {
+ "code": "km",
+ "name": "Khmer"
+ },
+ {
+ "code": "ki",
+ "name": "Kikuyu, Gikuyu"
+ },
+ {
+ "code": "rw",
+ "name": "Kinyarwanda"
+ },
+ {
+ "code": "ky",
+ "name": "Kyrgyz"
+ },
+ {
+ "code": "kv",
+ "name": "Komi"
+ },
+ {
+ "code": "kg",
+ "name": "Kongo"
+ },
+ {
+ "code": "ko",
+ "name": "Korean"
+ },
+ {
+ "code": "ku",
+ "name": "Kurdish"
+ },
+ {
+ "code": "kj",
+ "name": "Kwanyama, Kuanyama"
+ },
+ {
+ "code": "la",
+ "name": "Latin"
+ },
+ {
+ "code": "lb",
+ "name": "Luxembourgish, Letzeburgesch"
+ },
+ {
+ "code": "lg",
+ "name": "Ganda"
+ },
+ {
+ "code": "li",
+ "name": "Limburgish, Limburgan, Limburger"
+ },
+ {
+ "code": "ln",
+ "name": "Lingala"
+ },
+ {
+ "code": "lo",
+ "name": "Lao"
+ },
+ {
+ "code": "lt",
+ "name": "Lithuanian"
+ },
+ {
+ "code": "lu",
+ "name": "Luba-Katanga"
+ },
+ {
+ "code": "lv",
+ "name": "Latvian"
+ },
+ {
+ "code": "gv",
+ "name": "Manx"
+ },
+ {
+ "code": "mk",
+ "name": "Macedonian"
+ },
+ {
+ "code": "mg",
+ "name": "Malagasy"
+ },
+ {
+ "code": "ms",
+ "name": "Malay"
+ },
+ {
+ "code": "ml",
+ "name": "Malayalam"
+ },
+ {
+ "code": "mt",
+ "name": "Maltese"
+ },
+ {
+ "code": "mi",
+ "name": "MÄori"
+ },
+ {
+ "code": "mr",
+ "name": "Marathi (MarÄá¹­hÄ«)"
+ },
+ {
+ "code": "mh",
+ "name": "Marshallese"
+ },
+ {
+ "code": "mn",
+ "name": "Mongolian"
+ },
+ {
+ "code": "na",
+ "name": "Nauru"
+ },
+ {
+ "code": "nv",
+ "name": "Navajo, Navaho"
+ },
+ {
+ "code": "nb",
+ "name": "Norwegian Bokmål"
+ },
+ {
+ "code": "nd",
+ "name": "North Ndebele"
+ },
+ {
+ "code": "ne",
+ "name": "Nepali"
+ },
+ {
+ "code": "ng",
+ "name": "Ndonga"
+ },
+ {
+ "code": "nn",
+ "name": "Norwegian Nynorsk"
+ },
+ {
+ "code": "no",
+ "name": "Norwegian"
+ },
+ {
+ "code": "ii",
+ "name": "Nuosu"
+ },
+ {
+ "code": "nr",
+ "name": "South Ndebele"
+ },
+ {
+ "code": "oc",
+ "name": "Occitan"
+ },
+ {
+ "code": "oj",
+ "name": "Ojibwe, Ojibwa"
+ },
+ {
+ "code": "cu",
+ "name": "Old Church Slavonic, Church Slavic, Church Slavonic, Old Bulgarian, Old Slavonic"
+ },
+ {
+ "code": "om",
+ "name": "Oromo"
+ },
+ {
+ "code": "or",
+ "name": "Oriya"
+ },
+ {
+ "code": "os",
+ "name": "Ossetian, Ossetic"
+ },
+ {
+ "code": "pa",
+ "name": "Panjabi, Punjabi"
+ },
+ {
+ "code": "pi",
+ "name": "PÄli"
+ },
+ {
+ "code": "fa",
+ "name": "Persian (Farsi)"
+ },
+ {
+ "code": "pl",
+ "name": "Polish"
+ },
+ {
+ "code": "ps",
+ "name": "Pashto, Pushto"
+ },
+ {
+ "code": "pt",
+ "name": "Portuguese"
+ },
+ {
+ "code": "qu",
+ "name": "Quechua"
+ },
+ {
+ "code": "rm",
+ "name": "Romansh"
+ },
+ {
+ "code": "rn",
+ "name": "Kirundi"
+ },
+ {
+ "code": "ro",
+ "name": "Romanian, [])"
+ },
+ {
+ "code": "ru",
+ "name": "Russian"
+ },
+ {
+ "code": "sa",
+ "name": "Sanskrit (Saá¹ská¹›ta)"
+ },
+ {
+ "code": "sc",
+ "name": "Sardinian"
+ },
+ {
+ "code": "sd",
+ "name": "Sindhi"
+ },
+ {
+ "code": "se",
+ "name": "Northern Sami"
+ },
+ {
+ "code": "sm",
+ "name": "Samoan"
+ },
+ {
+ "code": "sg",
+ "name": "Sango"
+ },
+ {
+ "code": "sr",
+ "name": "Serbian"
+ },
+ {
+ "code": "gd",
+ "name": "Scottish Gaelic; Gaelic"
+ },
+ {
+ "code": "sn",
+ "name": "Shona"
+ },
+ {
+ "code": "si",
+ "name": "Sinhala, Sinhalese"
+ },
+ {
+ "code": "sk",
+ "name": "Slovak"
+ },
+ {
+ "code": "sl",
+ "name": "Slovene"
+ },
+ {
+ "code": "so",
+ "name": "Somali"
+ },
+ {
+ "code": "st",
+ "name": "Southern Sotho"
+ },
+ {
+ "code": "az",
+ "name": "South Azerbaijani"
+ },
+ {
+ "code": "es",
+ "name": "Spanish; Castilian"
+ },
+ {
+ "code": "su",
+ "name": "Sundanese"
+ },
+ {
+ "code": "sw",
+ "name": "Swahili"
+ },
+ {
+ "code": "ss",
+ "name": "Swati"
+ },
+ {
+ "code": "sv",
+ "name": "Swedish"
+ },
+ {
+ "code": "ta",
+ "name": "Tamil"
+ },
+ {
+ "code": "te",
+ "name": "Telugu"
+ },
+ {
+ "code": "tg",
+ "name": "Tajik"
+ },
+ {
+ "code": "th",
+ "name": "Thai"
+ },
+ {
+ "code": "ti",
+ "name": "Tigrinya"
+ },
+ {
+ "code": "bo",
+ "name": "Tibetan Standard, Tibetan, Central"
+ },
+ {
+ "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": "Uyghur, Uighur"
+ },
+ {
+ "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": "cy",
+ "name": "Welsh"
+ },
+ {
+ "code": "wo",
+ "name": "Wolof"
+ },
+ {
+ "code": "fy",
+ "name": "Western Frisian"
+ },
+ {
+ "code": "xh",
+ "name": "Xhosa"
+ },
+ {
+ "code": "yi",
+ "name": "Yiddish"
+ },
+ {
+ "code": "yo",
+ "name": "Yoruba"
+ },
+ {
+ "code": "za",
+ "name": "Zhuang, Chuang"
+ },
+ {
+ "code": "zu",
+ "name": "Zulu"
+ }
+ ]
+} \ No newline at end of file
diff --git a/plugin.video.newsblender/resources/language/resource.language.en_gb/strings.po b/plugin.video.newsblender/resources/language/resource.language.en_gb/strings.po
new file mode 100644
index 0000000..91725c4
--- /dev/null
+++ b/plugin.video.newsblender/resources/language/resource.language.en_gb/strings.po
@@ -0,0 +1,41 @@
+# Kodi Media Center language file
+# Addon Name: "News Blender
+# Addon id: plugin.video.newsblender
+# Addon Provider: Lunatixz
+msgid ""
+msgstr ""
+"Project-Id-Version: plugin.video.newsblender\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Lunatixz Translation Team\n"
+"Language-Team: English (http://www.transifex.com/projects/p/xbmc-addons/language/en/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: en\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgctxt "#30000"
+msgid "Enable Debugging [Log errors]"
+msgstr ""
+
+msgctxt "#30001"
+msgid "Something went wrong, Try again..."
+msgstr ""
+
+msgctxt "#30002"
+msgid "Select Preferred Quality"
+msgstr ""
+
+msgctxt "#30003"
+msgid "No videos found in %s"
+msgstr ""
+
+msgctxt "#30004"
+msgid "[B]- Search:[/B] %s"
+msgstr ""
+
+msgctxt "#30005"
+msgid "%s - Enter Search Term"
+msgstr ""
diff --git a/plugin.video.newsblender/resources/lib/__init__.py b/plugin.video.newsblender/resources/lib/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/plugin.video.newsblender/resources/lib/__init__.py
diff --git a/plugin.video.newsblender/resources/lib/newsblender.py b/plugin.video.newsblender/resources/lib/newsblender.py
new file mode 100644
index 0000000..f60e0cd
--- /dev/null
+++ b/plugin.video.newsblender/resources/lib/newsblender.py
@@ -0,0 +1,272 @@
+# Copyright (C) 2017 Lunatixz
+#
+#
+# This file is part of News Blender.
+#
+# News Blender is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# News Blender is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with News Blender. If not, see <http://www.gnu.org/licenses/>.
+
+# -*- coding: utf-8 -*-
+import os, sys, time, datetime, re, traceback
+import urllib, urllib2, socket, json, collections
+import xbmc, xbmcvfs, xbmcgui, xbmcplugin, xbmcaddon
+
+from YDStreamExtractor import getVideoInfo
+from simplecache import SimpleCache, use_cache
+
+# Plugin Info
+ADDON_ID = 'plugin.video.newsblender'
+REAL_SETTINGS = xbmcaddon.Addon(id=ADDON_ID)
+ADDON_NAME = REAL_SETTINGS.getAddonInfo('name')
+SETTINGS_LOC = REAL_SETTINGS.getAddonInfo('profile')
+ADDON_PATH = REAL_SETTINGS.getAddonInfo('path').decode('utf-8')
+ADDON_VERSION = REAL_SETTINGS.getAddonInfo('version')
+ICON = REAL_SETTINGS.getAddonInfo('icon')
+FANART = REAL_SETTINGS.getAddonInfo('fanart')
+LANGUAGE = REAL_SETTINGS.getLocalizedString
+
+## GLOBALS ##
+TIMEOUT = 15
+CONTENT_TYPE = 'files'
+USER_REGION = REAL_SETTINGS.getSetting("Select_Country")
+ISO3166 = os.path.join(ADDON_PATH,'resources','iso3166-1.json')
+ISO639 = os.path.join(ADDON_PATH,'resources','iso639-1.json')
+COUNTRY_LIST = sorted((json.load(xbmcvfs.File(ISO3166)))['3166-1'], key=lambda x: x['name'])
+LANGUAGE_LIST = sorted((json.load(xbmcvfs.File(ISO639)))['639-1'], key=lambda x: x['name'])
+API_KEY = REAL_SETTINGS.getSetting('APIKEY')
+BASE_URL = 'http://newsapi.org/v2'
+SOURCES_URL = BASE_URL + '/sources?apiKey=%s'%API_KEY #?language=en&country=us
+HEADLINE_URL = BASE_URL + '/top-headlines?apiKey=%s'%API_KEY
+EVRYTHING_URL = BASE_URL + '/everything?apiKey=%s'%API_KEY
+'&sources=%s'
+'&q=%s'
+'&category=%s'
+'&sortBy=%s' #popularity,top,latest
+LOGO_URL = 'http://icons.better-idea.org/icon?url=%s&size=70..120..200'
+DEBUG = REAL_SETTINGS.getSetting('Enable_Debugging') == 'true'
+QUALITY = int(REAL_SETTINGS.getSetting('Quality'))
+MAIN_MENU = ["Browse by Category","Browse by Source","Browse by Country","Browse by Language"]
+ITEM_MENU = ["All","Top","Latest","Popular","Search"]
+
+def log(msg, level=xbmc.LOGDEBUG):
+ if DEBUG == False and level != xbmc.LOGERROR: return
+ if level == xbmc.LOGERROR: msg += ' ,' + traceback.format_exc()
+ xbmc.log(ADDON_ID + '-' + ADDON_VERSION + '-' + msg, level)
+
+def getParams():
+ param=[]
+ if len(sys.argv[2])>=2:
+ params=sys.argv[2]
+ cleanedparams=params.replace('?','')
+ if (params[len(params)-1]=='/'): params=params[0:len(params)-2]
+ pairsofparams=cleanedparams.split('&')
+ param={}
+ for i in range(len(pairsofparams)):
+ splitparams={}
+ splitparams=pairsofparams[i].split('=')
+ if (len(splitparams))==2: param[splitparams[0]]=splitparams[1]
+ return param
+
+def getRegionName(region):
+ for item in COUNTRY_LIST:
+ if item['alpha_2'].lower() == region.lower(): return item['name']
+ return region
+
+def getLanguageName(language):
+ for item in LANGUAGE_LIST:
+ if item['code'].lower() == language.lower(): return item['name']
+ return language
+
+socket.setdefaulttimeout(TIMEOUT)
+class NewsBlender(object):
+ def __init__(self):
+ self.cache = SimpleCache()
+ self.sources = self.openURL(SOURCES_URL).get('sources','')
+
+
+ def openURL(self, url):
+ log('openURL, url = ' + url)
+ try:
+ cacheresponse = self.cache.get(ADDON_NAME + '.openURL, url = %s'%url)
+ if not cacheresponse:
+ request = urllib2.Request(url)
+ request.add_header('User-Agent','Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)')
+ response = urllib2.urlopen(request, timeout = TIMEOUT).read()
+ self.cache.set(ADDON_NAME + '.openURL, url = %s'%url, response, expiration=datetime.timedelta(hours=1))
+ return json.loads(self.cache.get(ADDON_NAME + '.openURL, url = %s'%url))
+ except Exception as e:
+ log("openURL Failed! " + str(e), xbmc.LOGERROR)
+ xbmcgui.Dialog().notification(ADDON_NAME, LANGUAGE(30001), ICON, 4000)
+ return ''
+
+
+ def buildMenu(self):
+ for idx, item in enumerate(MAIN_MENU): self.addDir(item,'',idx)
+
+
+ def buildCategory(self):
+ category = collections.Counter([x['category'] for x in self.sources])
+ for category, value in sorted(category.iteritems()): self.addDir(category.title(),category,4)
+
+
+ def buildCountry(self):
+ countries = collections.Counter([x['country'] for x in self.sources])
+ for country, value in sorted(countries.iteritems()): self.addDir(getRegionName(country),country,6)
+
+
+ def buildLanguage(self):
+ languages = collections.Counter([x['language'] for x in self.sources])
+ for language, value in sorted(languages.iteritems()): self.addDir(getLanguageName(language),language,7)
+
+
+ def buildSource(self, items=None):
+ if items is None: items = self.sources
+ for source in items:
+ label = source['name']
+ thumb = (LOGO_URL%source['url'] or ICON)
+ infoLabels = {"mediatype":"files","label":label,"title":label,"genre":source.get('category','news'),"plot":source.get('description','news')}
+ infoArt = {"thumb":thumb,"poster":thumb,"fanart":FANART,"icon":ICON,"logo":ICON}
+ self.addDir(label, source['id'], 5, infoLabels, infoArt)
+
+
+ def browseCategory(self, url):
+ self.buildSource(self.openURL(SOURCES_URL + '&category=%s'%url).get('sources',''))
+
+
+ def browseCountry(self, url):
+ self.buildSource(self.openURL(SOURCES_URL + '&country=%s'%url).get('sources',''))
+
+
+ def browseLanguage(self, url):
+ self.buildSource(self.openURL(SOURCES_URL + '&language=%s'%url).get('sources',''))
+
+
+ def browseTop(self, url):
+ self.browse(self.newsArticles.get_by_top(url).get('sources',''))
+
+
+ def browseLatest(self, url):
+ self.browse(self.newsArticles.get_by_latest(url).get('sources',''))
+
+
+ def browsePopular(self, url):
+ self.browse(self.newsArticles.get_by_popular(url).get('sources',''))
+
+
+ def search(self, name, url):
+ kb = xbmc.Keyboard('', LANGUAGE(30005)%name)
+ xbmc.sleep(1000)
+ kb.doModal()
+ if kb.isConfirmed():
+ try: self.browseArticles(name, url, self.openURL(EVRYTHING_URL + '&sources=%s&q=%s'%(url,urllib.quote_plus(kb.getText()))).get('articles',''), False)
+ except Exception as e:
+ log('search, failed ' + str(e), xbmc.LOGERROR)
+
+
+ def buildArticles(self, name, url):
+ self.browseArticles(name, url, self.openURL(HEADLINE_URL + '&sources=%s'%url).get('articles',''))
+
+
+ def browseArticles(self, name, url, items, search=True):
+ found = False
+ if search: self.addSearch(name, url)
+ for item in items:
+ source = item['source']['name']
+ label = item['title']
+ thumb = item['urlToImage']
+ try: aired = item['publishedAt'].split('T')[0]
+ except: aired = (datetime.datetime.now()).strftime('%Y-%m-%d')
+ info = self.getVideo(item['url'])
+ if info is None: continue
+ found = True
+ url = info[0]['xbmc_url']
+ # if 'subtitles' in info[0]['ytdl_format']: liz.setSubtitles([x['url'] for x in info[0]['ytdl_format']['subtitles'].get('en','') if 'url' in x])
+ infoLabels = {"mediatype":"episode","label":label ,"title":label,"duration":info[0]['ytdl_format'].get('duration',0),"aired":aired,"plot":item['description'],"genre":"News"}
+ infoArt = {"thumb":thumb,"poster":thumb,"fanart":FANART,"icon":ICON,"logo":ICON}
+ self.addLink(label, url, 99, infoLabels, infoArt)
+ if not found: self.addLink((LANGUAGE(30003)%source), "", 99)
+
+
+ def getVideo(self, url):
+ cacheresponse = self.cache.get(ADDON_NAME + '.getVideo, url = %s'%url)
+ if not cacheresponse:
+ info = getVideoInfo(url,QUALITY,True)
+ if info is not None: info = info.streams()
+ self.cache.set(ADDON_NAME + '.getVideo, url = %s'%url, json.dumps(info), expiration=datetime.timedelta(days=14))
+ return json.loads(self.cache.get(ADDON_NAME + '.getVideo, url = %s'%url))
+
+
+ def playVideo(self, name, url, liz=None):
+ log('playVideo')
+ if liz is None: liz = xbmcgui.ListItem(name, path=url)
+ xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, liz)
+
+
+ def addSearch(self, name, url):
+ self.addDir((LANGUAGE(30004)%name), url, 8)
+
+
+ def addLink(self, name, u, mode, infoList=False, infoArt=False, total=0):
+ name = name.encode("utf-8")
+ log('addLink, name = ' + name)
+ liz=xbmcgui.ListItem(name)
+ liz.setProperty('IsPlayable', 'true')
+ if infoList == False: liz.setInfo(type="Video", infoLabels={"mediatype":"video","label":name,"title":name})
+ else: liz.setInfo(type="Video", infoLabels=infoList)
+ if infoArt == False: liz.setArt({'thumb':LOGO_URL%urllib.quote_plus(name),'fanart':FANART})
+ else: liz.setArt(infoArt)
+ u=sys.argv[0]+"?url="+urllib.quote_plus(u)+"&mode="+str(mode)+"&name="+urllib.quote_plus(name)
+ xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz,totalItems=total)
+
+
+ def addDir(self, name, u, mode, infoList=False, infoArt=False):
+ name = name.encode("utf-8")
+ log('addDir, name = ' + name)
+ liz=xbmcgui.ListItem(name)
+ liz.setProperty('IsPlayable', 'false')
+ if infoList == False: liz.setInfo(type="Video", infoLabels={"mediatype":"video","label":name,"title":name})
+ else: liz.setInfo(type="Video", infoLabels=infoList)
+ if infoArt == False: liz.setArt({'thumb':ICON,'fanart':FANART}) #LOGO_URL%urllib.quote_plus(name)
+ else: liz.setArt(infoArt)
+ u=sys.argv[0]+"?url="+urllib.quote_plus(u)+"&mode="+str(mode)+"&name="+urllib.quote_plus(name)
+ xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz,isFolder=True)
+
+params=getParams()
+try: url=urllib.unquote_plus(params["url"])
+except: url=None
+try: name=urllib.unquote_plus(params["name"])
+except: name=None
+try: mode=int(params["mode"])
+except: mode=None
+log("Mode: "+str(mode))
+log("URL : "+str(url))
+log("Name: "+str(name))
+
+if mode==None: NewsBlender().buildMenu()
+elif mode == 0: NewsBlender().buildCategory()
+elif mode == 1: NewsBlender().buildSource()
+elif mode == 2: NewsBlender().buildCountry()
+elif mode == 3: NewsBlender().buildLanguage()
+elif mode == 4: NewsBlender().browseCategory(url)
+elif mode == 5: NewsBlender().buildArticles(name, url)
+elif mode == 6: NewsBlender().browseCountry(url)
+elif mode == 7: NewsBlender().browseLanguage(url)
+elif mode == 8: NewsBlender().search(name, url)
+elif mode == 99: NewsBlender().playVideo(name, url)
+
+xbmcplugin.setContent(int(sys.argv[1]) , CONTENT_TYPE)
+xbmcplugin.addSortMethod(int(sys.argv[1]) , xbmcplugin.SORT_METHOD_UNSORTED)
+xbmcplugin.addSortMethod(int(sys.argv[1]) , xbmcplugin.SORT_METHOD_NONE)
+xbmcplugin.addSortMethod(int(sys.argv[1]) , xbmcplugin.SORT_METHOD_LABEL)
+xbmcplugin.addSortMethod(int(sys.argv[1]) , xbmcplugin.SORT_METHOD_TITLE)
+xbmcplugin.endOfDirectory(int(sys.argv[1]), cacheToDisc=True) \ No newline at end of file
diff --git a/plugin.video.newsblender/resources/settings.xml b/plugin.video.newsblender/resources/settings.xml
new file mode 100644
index 0000000..ca3092b
--- /dev/null
+++ b/plugin.video.newsblender/resources/settings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<settings>
+ <setting id="Enable_Debugging" type="bool" label="30000" default="false" />
+ <setting id="Quality" type="enum" label="30002" default="3" values="SD|720p|1080p|Highest Available"/>
+ <setting id="APIKEY" enable="false" visible="false" option="hidden" type="text" default="4a5acaee9e8944baa36729027e6e75a6" />
+</settings>