Repository: electricitymaps/electricitymaps-contrib

Issue:
Data for Gulf countries (United Arab Emirates, Bahrain, Saudi Arabia, Oman, Qatar, and Kuwait)
I did some digging and found https://www.gccia.com.sa/, which has a map with "Demand Now" data for Gulf Cooperation Council countries, which are United Arab Emirates, Bahrain, Saudi Arabia, Oman, Qatar, and Kuwait.

Comparing the value on the map for Kuwait with the [data source](https://www.mew.gov.kw/en) ElectricityMap currently uses for that country, the value on the GCCIA site is only slightly different, possibly due to latency or the fact that I didn't load both sites at the exact same time.

They also have [an app](https://www.gccia.com.sa/gcciamobile.html), with screenshots implying it has historical data graphs.

Edit: forgot to mention - a few countries show an `-` instead of electricity demand right now (Oman, Saudi  Arabia). This might just be temporary.


Discussion:
@q-- i'm so happy to see a new source for the data of a whole geohraphical region :) well done! :+1: :+1: :+1: 
Glad I could help 😊
+1! Great job!!!

Resolving patch:
diff --git a/parsers/GCCIA.py b/parsers/GCCIA.py
new file mode 100644
--- /dev/null
+++ b/parsers/GCCIA.py
@@ -0,0 +1,66 @@
+#!/usr/bin/env python3
+# coding=utf-8
+
+# This parser returns Gulf Cooperation Council countries (United Arab Emirates, Bahrain, Saudi Arabia, Oman, Qatar, and Kuwait) electricity demand (only consumption, production data is not available)
+# Kuwait has a good data source and parser of its own, but should it become unavailable this parser can return data for Kuwait as well
+# Source: Gulf Cooperation Council Interconnection Authority
+# URL: https://www.gccia.com.sa/
+# Scroll down to see the system demand map
+# Kuwait shares of Electricity production in 2017: 65.6% oil, 34.4% gas (source: IEA; https://www.iea.org/statistics/?country=KUWAIT&indicator=ElecGenByFuel)
+# TODO get this data for the other countries as well
+
+import arrow
+import requests
+import re
+from sys import stderr
+
+COUNTRY_CODE_MAPPING = {
+  'AE': 'uae',
+  'BH': 'bah',
+  'KW': 'kuw',
+  'OM': 'omn',
+  'QA': 'qat',
+  'SA': 'ksa',
+}
+
+TIME_ZONE_MAPPING = {
+  'AE': 'Asia/Dubai',
+  'BH': 'Asia/Bahrain',
+  'KW': 'Asia/Kuwait',
+  'OM': 'Asia/Muscat',
+  'QA': 'Asia/Qatar',
+  'SA': 'Asia/Riyadh',
+}
+
+def fetch_consumption(zone_key, session=None, logger=None):
+    r = session or requests.session()
+    url = 'https://www.gccia.com.sa/'
+    response = r.get(url)
+
+    pattern = COUNTRY_CODE_MAPPING[zone_key]+"-mw-val\">\s*(\d+)"
+
+    load = re.findall(pattern, response.text)
+    load = int(load[0])
+    consumption = {}
+    consumption['unknown'] = load
+
+    datapoint = {
+        'zoneKey': zone_key,
+        'datetime': arrow.now(TIME_ZONE_MAPPING[zone_key]).datetime,
+        'consumption': consumption,
+        'source': 'www.gccia.com.sa' # URL won't work without WWW
+    }
+
+    return datapoint
+
+if __name__ == '__main__':
+    """Main method, never used by the electricityMap backend, but handy for testing."""
+
+    for i in COUNTRY_CODE_MAPPING:
+      print('fetch_consumption(\'{0}\') ->'.format(i))
+      try:
+        print(fetch_consumption(i))
+      except IndexError as error:
+        print("Could not fetch consumption data for {0}".format(i), file=stderr)
+        print(type(error), ":", error, file=stderr)
+      print("\n")


Test patch: