From 811bef41b8f633e7cec308e845471eb92fa0995a Mon Sep 17 00:00:00 2001
From: John Preston <johnprestonmail@gmail.com>
Date: Fri, 7 Dec 2018 20:14:29 +0400
Subject: [PATCH] Add caption limit check to updates posting.

---
 Telegram/build/updates.py | 152 ++++++++++++++++++++------------------
 1 file changed, 79 insertions(+), 73 deletions(-)

diff --git a/Telegram/build/updates.py b/Telegram/build/updates.py
index fff9275bc..876ae67c8 100644
--- a/Telegram/build/updates.py
+++ b/Telegram/build/updates.py
@@ -1,7 +1,5 @@
 import os, sys, re, subprocess, datetime
 
-print('Building debug version for OS X 10.8+..')
-
 executePath = os.getcwd()
 scriptPath = os.path.dirname(os.path.realpath(__file__))
 
@@ -9,7 +7,7 @@ lastCommit = ''
 today = ''
 nextLast = False
 nextDate = False
-sending = False
+building = True
 for arg in sys.argv:
     if nextLast:
         lastCommit = arg
@@ -18,7 +16,7 @@ for arg in sys.argv:
         today = arg
         nextDate = False
     elif arg == 'send':
-        sending = True
+        building = False
     elif arg == 'from':
         nextLast = True
     elif arg == 'date':
@@ -35,15 +33,81 @@ if today == '':
     today = datetime.datetime.now().strftime("%d_%m_%y")
 outputFolder = 'updates/' + today
 
-if os.path.exists('../out/Debug/' + outputFolder):
-    if sending:
-        #subprocess.call(['/Applications/Telegram.app/Contents/MacOS/Telegram', '-sendpath', 'interpret://' + scriptPath + '../../out/Debug/' + outputFolder + '/command.txt'], shell=True)
-        subprocess.call(scriptPath + '/../../out/Debug/Telegram.app/Contents/MacOS/Telegram -sendpath interpret://' + scriptPath + '/../../out/Debug/' + outputFolder + '/command.txt', shell=True)
-        finish(0)
-    else:
+archive = 'tdesktop_macOS_' + today + '.zip'
+
+if building:
+    print('Building debug version for OS X 10.8+..')
+
+    if os.path.exists('../out/Debug/' + outputFolder):
         print('[ERROR] Todays updates version exists.')
         finish(1)
 
+    result = subprocess.call('gyp/refresh.sh', shell=True)
+    if result != 0:
+        print('[ERROR] While calling GYP.')
+        finish(1)
+
+    result = subprocess.call('xcodebuild -project Telegram.xcodeproj -alltargets -configuration Debug build', shell=True)
+    if result != 0:
+        print('[ERROR] While building Telegram.')
+        finish(1)
+
+    os.chdir('../out/Debug')
+    if not os.path.exists('Telegram.app'):
+        print('[ERROR] Telegram.app not found.')
+        finish(1)
+
+    result = subprocess.call('strip Telegram.app/Contents/MacOS/Telegram', shell=True)
+    if result != 0:
+        print('[ERROR] While stripping Telegram.')
+        finish(1)
+
+    result = subprocess.call('codesign --force --deep --sign "Developer ID Application: John Preston" Telegram.app', shell=True)
+    if result != 0:
+        print('[ERROR] While signing Telegram.')
+        finish(1)
+
+    if not os.path.exists('Telegram.app/Contents/Frameworks/Updater'):
+        print('[ERROR] Updater not found.')
+        finish(1)
+    elif not os.path.exists('Telegram.app/Contents/Helpers/crashpad_handler'):
+        print('[ERROR] crashpad_handler not found.')
+        finish(1)
+    elif not os.path.exists('Telegram.app/Contents/Resources/Icon.icns'):
+        print('[ERROR] Icon not found.')
+        finish(1)
+    elif not os.path.exists('Telegram.app/Contents/_CodeSignature'):
+        print('[ERROR] Signature not found.')
+        finish(1)
+
+    if os.path.exists(today):
+        subprocess.call('rm -rf ' + today, shell=True)
+    result = subprocess.call('mkdir -p ' + today + '/TelegramForcePortable', shell=True)
+    if result != 0:
+        print('[ERROR] Creating folder ' + today + '/TelegramForcePortable')
+        finish(1)
+
+    result = subprocess.call('cp -r Telegram.app ' + today + '/', shell=True)
+    if result != 0:
+        print('[ERROR] Cloning Telegram.app to ' + today + '.')
+        finish(1)
+
+    result = subprocess.call('zip -r ' + archive + ' ' + today, shell=True)
+    if result != 0:
+        print('[ERROR] Adding tdesktop to archive.')
+        finish(1)
+
+    subprocess.call('mkdir -p ' + outputFolder, shell=True)
+    subprocess.call('mv ' + archive + ' ' + outputFolder + '/', shell=True)
+    subprocess.call('rm -rf ' + today, shell=True)
+    print('Finished.')
+    finish(0)
+
+
+if not os.path.exists('../out/Debug/' + outputFolder + '/' + archive):
+    print('[ERROR] Not built yet.')
+    finish(1)
+
 templatePath = scriptPath + '/../../../TelegramPrivate/updates_template.txt'
 if not os.path.exists(templatePath):
     print('[ERROR] Template file "' + templatePath + '" not found.')
@@ -80,77 +144,19 @@ if not len(commits):
     print('[ERROR] No commits since last build :(')
     finish(1)
 
-result = subprocess.call('gyp/refresh.sh', shell=True)
-if result != 0:
-    print('[ERROR] While calling GYP.')
-    finish(1)
-
-result = subprocess.call('xcodebuild -project Telegram.xcodeproj -alltargets -configuration Debug build', shell=True)
-if result != 0:
-    print('[ERROR] While building Telegram.')
-    finish(1)
-
-os.chdir('../out/Debug')
-if not os.path.exists('Telegram.app'):
-    print('[ERROR] Telegram.app not found.')
-    finish(1)
-
-result = subprocess.call('strip Telegram.app/Contents/MacOS/Telegram', shell=True)
-if result != 0:
-    print('[ERROR] While stripping Telegram.')
-    finish(1)
-
-result = subprocess.call('codesign --force --deep --sign "Developer ID Application: John Preston" Telegram.app', shell=True)
-if result != 0:
-    print('[ERROR] While signing Telegram.')
-    finish(1)
-
-if not os.path.exists('Telegram.app/Contents/Frameworks/Updater'):
-    print('[ERROR] Updater not found.')
-    finish(1)
-elif not os.path.exists('Telegram.app/Contents/Helpers/crashpad_handler'):
-    print('[ERROR] crashpad_handler not found.')
-    finish(1)
-elif not os.path.exists('Telegram.app/Contents/Resources/Icon.icns'):
-    print('[ERROR] Icon not found.')
-    finish(1)
-elif not os.path.exists('Telegram.app/Contents/_CodeSignature'):
-    print('[ERROR] Signature not found.')
-    finish(1)
-
-if os.path.exists(today):
-    subprocess.call('rm -rf ' + today, shell=True)
-result = subprocess.call('mkdir -p ' + today + '/TelegramForcePortable', shell=True)
-if result != 0:
-    print('[ERROR] Creating folder ' + today + '/TelegramForcePortable')
-    finish(1)
-
-result = subprocess.call('cp -r Telegram.app ' + today + '/', shell=True)
-if result != 0:
-    print('[ERROR] Cloning Telegram.app to ' + today + '.')
-    finish(1)
-
-archive = 'tdesktop_macOS_' + today + '.zip'
-result = subprocess.call('zip -r ' + archive + ' ' + today, shell=True)
-if result != 0:
-    print('[ERROR] Adding tdesktop to archive.')
-    finish(1)
-
 changelog = '\n'.join(commits)
 print('\n\nReady! File: ' + archive + '\nChangelog:\n' + changelog)
-
-subprocess.call('mkdir -p ' + outputFolder, shell=True)
-subprocess.call('mv ' + archive + ' ' + outputFolder + '/', shell=True)
+if len(changelog) > 1024:
+    print('[ERROR] Length: ' + str(len(changelog)))
+    finish(1)
 with open(templatePath, 'r') as template:
-    with open(outputFolder + '/command.txt', 'w') as f:
+    with open(scriptPath + '/../../out/Debug/' + outputFolder + '/command.txt', 'w') as f:
         for line in template:
             if line.startswith('//'):
                 continue
             line = line.replace('{path}', scriptPath + '/../../out/Debug/' + outputFolder + '/' + archive)
             line = line.replace('{caption}', 'TDesktop at ' + today.replace('_', '.') + ':\n\n' + changelog)
             f.write(line)
-
-subprocess.call('rm -rf ' + today, shell=True)
-print('Finished.')
+subprocess.call(scriptPath + '/../../out/Debug/Telegram.app/Contents/MacOS/Telegram -sendpath interpret://' + scriptPath + '/../../out/Debug/' + outputFolder + '/command.txt', shell=True)
 
 finish(0)