Compare commits

..

1 Commits

Author SHA1 Message Date
shekhar-cis 1a54f3b81d
Updated method names 2023-01-10 17:46:19 +05:30
1 changed files with 36 additions and 45 deletions

View File

@ -7,6 +7,8 @@ import os
import requests import requests
import time import time
import logging
from subprocess import call from subprocess import call
from base64 import b64encode from base64 import b64encode
@ -23,20 +25,20 @@ from twisted.python import log
_HEADER_USER_AGENT = 'User-Agent' _HEADER_USER_AGENT = 'User-Agent'
_HEADER_SIGNATURE = 'X-TX-Signature' _HEADER_SIGNATURE = 'X-TX-Signature'
_HEADER_URL_PATH = 'X-TX-Url' _HEADER_URL_PATH = 'X-TX-Url'
HTTP_DATE = 'date' _HTTP_DATE = 'date'
_EVENT_KEY = 'event' _EVENT_KEY = 'event'
transifex_request_data = {}
class TransifexHandler(BaseHookHandler): class TransifexHandler(BaseHookHandler):
def __init__(self, master, secret, options, transifex_dict): def __init__(self, master, secret, options, transifex_to_github_map):
if not options: if not options:
options = {} options = {}
self.secret = secret self.secret = secret
self.master = master self.master = master
self.options = options self.options = options
self.transifex_dict = transifex_dict self.transifex_to_github_map = transifex_to_github_map
def returnMessage(self, status = False, message = "Unimplemented"): def returnMessage(self, status = False, message = "Unimplemented"):
@ -48,7 +50,7 @@ class TransifexHandler(BaseHookHandler):
): ):
http_verb = 'POST' http_verb = 'POST'
http_url_path = request.getHeader(_HEADER_URL_PATH) http_url_path = request.getHeader(_HEADER_URL_PATH)
http_gmt_date = request.getHeader(HTTP_DATE) http_gmt_date = request.getHeader(_HTTP_DATE)
content_md5 = hashlib.md5(content).hexdigest() content_md5 = hashlib.md5(content).hexdigest()
msg = b'\n'.join([ msg = b'\n'.join([
http_verb, http_url_path, http_gmt_date, content_md5 http_verb, http_url_path, http_gmt_date, content_md5
@ -67,28 +69,25 @@ class TransifexHandler(BaseHookHandler):
return False return False
return True return True
def process_translation_completed(self, payload, transifex_dict, event_type, codebase): def process_translation_completed(self, payload, transifex_to_github_map, event_type, codebase):
changes = [] changes = []
transifex_response = self._transform_variables(payload, transifex_dict) transifex_response = self._transform_variables(payload, transifex_to_github_map)
# if 'pybitmessage-test' in transifex_response['project'] and 'messagespot' in transifex_response['resource']: # if 'pybitmessage-test' in transifex_response['project'] and 'messagespot' in transifex_response['resource']:
# if 'translation_completed' in transifex_response['event']: # if 'translation_completed' in transifex_response['event']:
try: language = transifex_response.get['language']
lang = transifex_response['language']
except Exception as exception:
raise KeyError('No such key found: ' + str(exception))
change = { change = {
'author': 'buildbot-transifex', 'author': "buildbot-transifex",
'resource': transifex_dict['resource'], 'resource': transifex_to_github_map["resource"],
'branch': transifex_dict['branch'], 'branch': transifex_to_github_map["branch"],
'project': transifex_dict['project'], 'project': transifex_to_github_map["project"],
'event': event_type, 'event': event_type,
'revision': revision,
'properties': { 'properties': {
'branch': branch, "transifex_language": payload.get("language", "None"),
'revision': revision, "transifex_event": payload.get("event", "None"),
'language': lang, "transifex_project": payload.get("project", "None"),
'resource': resource, "transifex_resource": payload.get("resource", "None")
'project': project
} }
} }
if codebase is not None: if codebase is not None:
@ -96,18 +95,18 @@ class TransifexHandler(BaseHookHandler):
changes.insert(0, change) changes.insert(0, change)
return changes return changes
def _transform_variables(self, payload, transifex_dict): def _transform_variables(self, payload, transifex_to_github_map):
project = payload.get('project', 'None') project = payload.get('project', 'None')
transform_values = { transform_values = {
project: { 'resource': transifex_to_github_map["resource"],
"repository": "https://github.com/Bitmessage/PyBitmessage", 'branch': transifex_to_github_map["branch"],
"branch": "v0.6" 'project': transifex_to_github_map["project"],
}
} }
return transform_values return transform_values
@defer.inlineCallbacks @defer.inlineCallbacks
def getChanges(self, request): def getChanges(self, request):
change = {}
self.secret = None self.secret = None
if isinstance(self.options, dict): if isinstance(self.options, dict):
self.secret = self.options.get('secret') self.secret = self.options.get('secret')
@ -129,31 +128,23 @@ class TransifexHandler(BaseHookHandler):
digestmod=hashlib.sha256) digestmod=hashlib.sha256)
header_signature = bytes2unicode( header_signature = bytes2unicode(
request.getHeader(_HEADER_SIGNATURE)) request.getHeader(_HEADER_SIGNATURE))
self._verifyTransifexSignature( if not self._verifyTransifexSignature(request, content, self.rendered_secret, signature, header_signature):
request, content, self.rendered_secret, logging.warning("Verify Transifex Signature fail.")
signature, header_signature else:
) logging.warning("Verify Transifex Signature ok")
event_type = payload.get("event", "None") event_type = payload.get("event", "None")
language = payload.get("language", 'None')
project = payload.get("project", 'None')
resource = payload.get("resource", 'None')
transifex_request_data['branch'] = transifex_dict['branch'] change["properties"] = {
transifex_request_data['revision'] = "" "transifex_language": payload.get("language", "None"),
transifex_request_data["properties"] = { "transifex_event": payload.get("event", "None"),
"transifex_language": language, "transifex_project": payload.get("project", "None"),
"transifex_resource": resource, "transifex_resource": payload.get("resource", "None")
"transifex_project": project
} }
transifex_request_data["properties"] = { change["changes"] = {
"branch": branch,
"revision": revision
}
transifex_request_data["changes"] = {
"author": "buildbot-transifex", "author": "buildbot-transifex",
"repository": project, "repository": transifex_to_github_map['repository'],
} }
log.msg("Received event '{}' from transifex".format(event_type)) log.msg("Received event '{}' from transifex".format(event_type))
@ -170,4 +161,4 @@ class TransifexHandler(BaseHookHandler):
return (changes, 'transifex') return (changes, 'transifex')
transifex = TransifexHandler(transifex_dict) transifex = TransifexHandler(transifex_to_github_map)