| OLD | NEW |
| 1 # This Source Code Form is subject to the terms of the Mozilla Public | 1 # This Source Code Form is subject to the terms of the Mozilla Public |
| 2 # License, v. 2.0. If a copy of the MPL was not distributed with this | 2 # License, v. 2.0. If a copy of the MPL was not distributed with this |
| 3 # file, You can obtain one at http://mozilla.org/MPL/2.0/. | 3 # file, You can obtain one at http://mozilla.org/MPL/2.0/. |
| 4 | 4 |
| 5 import re | 5 import re |
| 6 import os | 6 import os |
| 7 import sys | 7 import sys |
| 8 import codecs | 8 import codecs |
| 9 import json | 9 import json |
| 10 import urlparse | 10 import urlparse |
| (...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 185 '\r\n{data}\r\n' | 185 '\r\n{data}\r\n' |
| 186 '--{boundary}--\r\n' | 186 '--{boundary}--\r\n' |
| 187 ).format(boundary=boundary, | 187 ).format(boundary=boundary, |
| 188 name=name, | 188 name=name, |
| 189 data=data.encode('utf-8'), | 189 data=data.encode('utf-8'), |
| 190 mimetype=mimetypes.guess_type(name)[0]) | 190 mimetype=mimetypes.guess_type(name)[0]) |
| 191 | 191 |
| 192 return ( | 192 return ( |
| 193 StringIO(body), | 193 StringIO(body), |
| 194 { | 194 { |
| 195 'Content-Type': ('multipart/form-data; boundary=' + boundary), | 195 'Content-Type': 'multipart/form-data; boundary=' + boundary, |
| 196 'Content-Length': len(body) | 196 'Content-Length': len(body) |
| 197 }, | 197 }, |
| 198 ) | 198 ) |
| 199 | 199 |
| 200 | 200 |
| 201 def updateTranslationMaster(localeConfig, metadata, dir, projectName, key): | 201 def updateTranslationMaster(localeConfig, metadata, dir, projectName, key): |
| 202 result = crowdin_request(projectName, 'info', key) | 202 result = crowdin_request(projectName, 'info', key) |
| 203 | 203 |
| 204 existing = set(map(lambda f: f['name'], result['files'])) | 204 existing = set(map(lambda f: f['name'], result['files'])) |
| 205 add = [] | 205 add = [] |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 318 # Remove any extra files | 318 # Remove any extra files |
| 319 for dir, files in dirs.iteritems(): | 319 for dir, files in dirs.iteritems(): |
| 320 baseDir = os.path.join(localeConfig['base_path'], dir) | 320 baseDir = os.path.join(localeConfig['base_path'], dir) |
| 321 if not os.path.exists(baseDir): | 321 if not os.path.exists(baseDir): |
| 322 continue | 322 continue |
| 323 for file in os.listdir(baseDir): | 323 for file in os.listdir(baseDir): |
| 324 path = os.path.join(baseDir, file) | 324 path = os.path.join(baseDir, file) |
| 325 valid_extension = file.endswith('.json') | 325 valid_extension = file.endswith('.json') |
| 326 if os.path.isfile(path) and valid_extension and not file in files: | 326 if os.path.isfile(path) and valid_extension and not file in files: |
| 327 os.remove(path) | 327 os.remove(path) |
| OLD | NEW |