Browse Source

Add descs and title for F-Droid

Signed-off-by: Mario Danic <mario@lovelyhq.com>
Mario Danic 7 years ago
parent
commit
01b37dcb1c

+ 25 - 0
app/src/Generic/fastlane/metadata/android/en-US/full_description.txt

@@ -0,0 +1,25 @@
+Use Nextcloud Talk to have one-on-one or group audio or video calls, create or join web conferences and send chat messages. All communication is fully encrypted and mediated by your own server, providing the highest degree of privacy possible.
+
+Nextcloud Talk is easy to use and will always be completely free!
+
+Nextcloud Talk supports:
+* HD (H.265) audio/video calls
+* Group and one-on-one calls
+* Webinars & public web meetings
+* Individual and group chat
+* Easy screen sharing
+* Mobile apps for Android and iOS
+* Mobile call & chat push notifications
+* Integration in Nextcloud Files and Nextcloud Groupware
+* Fully on-premise, 100% open source
+* End-to-end Encrypted calls
+* Scaling to millions of users
+* SIP gate: dial in by phone
+
+The Nextcloud Talk app requires a Nextcloud Talk server to function. Nextcloud is a private, self-hosted file sync and communication platform, designed to put you back in control over your data. It runs on a server of your choice, be it at home, at a service provider or in your enterprise, and gives you access to your documents, calendars, contacts, email and other data. You can share with others even across different Nextcloud servers and work together on documents. Nextcloud is fully open source, giving you the option to extend them for your own use, participate in their development or simply verify they do what we promise.
+
+Millions of users use Nextcloud daily at businesses and homes around the world. Business users rely on the professional support of Nextcloud GmbH, making sure they have a fully supported, enterprise-ready platform for productivity and collaboration, fully under control of their IT department.
+
+Learn more on https://nextcloud.com/talk
+
+Find Nextcloud on https://nextcloud.com

+ 1 - 0
app/src/Generic/fastlane/metadata/android/en-US/short_description.txt

@@ -0,0 +1 @@
+Have private video calls and chat using your own server.

+ 1 - 0
app/src/Generic/fastlane/metadata/android/en-US/title.txt

@@ -0,0 +1 @@
+Nextcloud Talk

+ 26 - 0
app/src/main/res/values/strings.xml

@@ -132,4 +132,30 @@
 
     <!-- Magical stuff -->
     <string name="nc_empty"></string>
+    <string name="nc_store_short_desc">Have private video calls and chat using your own server.</string>
+    <string name="nc_store_full_desc">Use Nextcloud Talk to have one-on-one or group audio or video calls, create or join web conferences and send chat messages. All communication is fully encrypted and mediated by your own server, providing the highest degree of privacy possible.
+
+Nextcloud Talk is easy to use and will always be completely free!
+
+Nextcloud Talk supports:
+* HD (H.265) audio/video calls
+* Group and one-on-one calls
+* Webinars &amp; public web meetings
+* Individual and group chat
+* Easy screen sharing
+* Mobile apps for Android and iOS
+* Mobile call &amp; chat push notifications
+* Integration in Nextcloud Files and Nextcloud Groupware
+* Fully on-premise, 100% open source
+* End-to-end Encrypted calls
+* Scaling to millions of users
+* SIP gate: dial in by phone
+
+The Nextcloud Talk app requires a Nextcloud Talk server to function. Nextcloud is a private, self-hosted file sync and communication platform, designed to put you back in control over your data. It runs on a server of your choice, be it at home, at a service provider or in your enterprise, and gives you access to your documents, calendars, contacts, email and other data. You can share with others even across different Nextcloud servers and work together on documents. Nextcloud is fully open source, giving you the option to extend them for your own use, participate in their development or simply verify they do what we promise.
+
+Millions of users use Nextcloud daily at businesses and homes around the world. Business users rely on the professional support of Nextcloud GmbH, making sure they have a fully supported, enterprise-ready platform for productivity and collaboration, fully under control of their IT department.
+
+Learn more on https://nextcloud.com/talk
+
+Find Nextcloud on https://nextcloud.com</string>
 </resources>

+ 125 - 0
scripts/metadata/generate_metadata.py

@@ -0,0 +1,125 @@
+#!/usr/bin/env python3
+
+# Author: Torsten Grote
+# License: GPLv3 or later
+# copied on 2017/11/06 from https://github.com/grote/Transportr/blob/master/fastlane/generate_metadata.py
+# adapted by Tobias Kaminsky and then again by Mario Danic
+
+import codecs
+import os
+import shutil
+from xml.etree import ElementTree
+
+XML_PATH = '../../app/src/main/res'
+METADATA_PATH = '../../app/src/Generic/fastlane/metadata/android/'
+DEFAULT_LANG = 'en-US'
+LANG_MAP = {
+    'values': 'en-US',
+    'values-en-rGB': 'en-GB',
+    'values-ca': 'ca',
+    'values-cs': 'cs-CZ',
+    'values-de': 'de-DE',
+    'values-es': 'es-ES',
+    'values-fr': 'fr-FR',
+    'values-hu': 'hu-HU',
+    'values-it': 'it-IT',
+    'values-pt-rBR': 'pt-BR',
+    'values-pt-rPT': 'pt-PT',
+    'values-ta': 'ta-IN',
+    'values-sv': 'sv-SE',
+    'values-sq-rAL': 'sq-AL',
+    'values-sq-rMK': 'sq-MK',
+    'values-iw-rIL': 'iw-IL',
+    'values-ar': 'ar-AR',
+    'values-bg-rBG': 'bg-BG',
+    'values-da': 'da-DK',
+    'values-fi-rFI': 'fi-FI',
+    'values-gl-rES': 'gl-ES',
+    'values-tr': 'tr-TR',
+    'values-uk': 'uk-UK',
+    'values-vi': 'vi-VI',
+    'values-ro': 'ro-RO',
+    'values-ou': 'ru-RU',
+    'values-sr': 'sr-SR',
+    'values-pl': 'pl-PL',
+    'values-el': 'el-GR',
+    'values-ko': 'ko-KR',
+    'values-nl': 'nl-NL',
+    'values-ja': 'ja-JP',
+    'values-no-rNO': 'no-NO',
+    'values-eu': 'eu-ES',
+    'values-lt-rLT': 'lt-LT',
+    'values-zh-rKN': 'zh-HK',
+    'values-zk': 'zk-CN',
+    'values-is': 'is-IS',
+    'values-id': 'id-ID',
+    'values-cs-rCZ': 'cs-CZ',
+    'values-sl': 'sl-SL',
+    'values-fa': 'fa-FA'
+}
+
+PATH = os.path.dirname(os.path.realpath(__file__))
+
+
+def main():
+    path = os.path.join(PATH, XML_PATH)
+    for entry in os.listdir(path):
+        directory = os.path.join(path, entry)
+        if not os.path.isdir(directory) or entry not in LANG_MAP.keys():
+            continue
+        strings_file = os.path.join(directory, 'strings.xml')
+        if not os.path.isfile(strings_file):
+            print("Error: %s does not exist" % strings_file)
+            continue
+
+        print()
+        print(LANG_MAP[entry])
+        print("Parsing %s..." % strings_file)
+        e = ElementTree.parse(strings_file).getroot()
+        short_desc = e.find('.//string[@name="nc_store_short_desc"]')
+        full_desc = e.find('.//string[@name="nc_store_full_desc"]')
+        if short_desc is not None:
+            save_file(short_desc.text, LANG_MAP[entry], 'short_description.txt', False)
+        if full_desc is not None:
+            save_file(full_desc.text, LANG_MAP[entry], 'full_description.txt', False)
+
+
+def save_file(text, directory, filename, dev):
+    if dev:
+        directory_path = os.path.join(PATH, METADATA_DEV_PATH, directory)
+    else:
+        directory_path = os.path.join(PATH, METADATA_PATH, directory)
+
+    if not os.path.exists(directory_path):
+        os.makedirs(directory_path)
+    if filename == 'short_description.txt':
+        limit = 80
+    else:
+        limit = 0
+    text = clean_text(text, limit)
+    check_title(directory_path)
+    file_path = os.path.join(directory_path, filename)
+    print("Writing %s..." % file_path)
+    with codecs.open(file_path, 'w', 'utf-8') as f:
+        f.write(text)
+        f.write("\n")
+
+
+def clean_text(text, limit=0):
+    text = text.replace('\\\'', '\'').replace('\\n', '\n')
+    if limit != 0 and len(text) > limit:
+        print("Warning: Short Description longer than 80 characters, truncating...")
+        text = text[:limit]
+    return text
+
+
+def check_title(directory):
+    title_path = os.path.join(directory, 'title.txt')
+    if os.path.exists(title_path):
+        return
+    default_title_path = os.path.join(directory, '..', DEFAULT_LANG, 'title.txt')
+    shutil.copy(default_title_path, title_path)
+
+
+if __name__ == "__main__":
+    main()