def get(self): toTranslate = self.get_argument('q') markUnknown = self.get_argument('markUnknown', default='yes') in ['yes', 'true', '1'] try: l1, l2 = map(toAlpha3Code, self.get_argument('langpair').split('|')) except ValueError: self.send_error(400, explanation='That pair is invalid, use e.g. eng|spa') if self.scaleMtLogs: before = datetime.now() tInfo = TranslationInfo(self) key = getKey(tInfo.key) after = datetime.now() scaleMtLog(400, after-before, tInfo, key, len(toTranslate)) return def handleTranslation(): if self.get_status() != 200: self.send_error(self.get_status()) return if hasattr(self, 'res'): self.noteUnknownTokens('-'.join((l1, l2)), self.res) self.res = self.res if markUnknown else self.stripUnknownMarks(self.res) self.sendResponse({ 'responseData': {'translatedText': self.res}, 'responseDetails': None, 'responseStatus': 200 }) return if hasattr(self, 'redir'): self.redirect(self.redir) return logging.error('handleTranslation reached a thought-to-be-unreachable line') self.send_error(500) if '%s-%s' % (l1, l2) in self.pairs: self.start_worker(handleTranslation, toTranslate, l1, l2) self.notePairUsage((l1, l2)) self.cleanPairs() else: self.send_error(400, explanation='That pair is not installed') if self.scaleMtLogs: before = datetime.now() tInfo = TranslationInfo(self) key = getKey(tInfo.key) after = datetime.now() scaleMtLog(400, after-before, tInfo, key, len(toTranslate))
def key_down(self, evt): self.editor.key_down(evt, 1, 1) keyname = keys.getKey(evt) if keyname == config.config.get("Keys", "Up"): self.nudge(Vector(0, 1, 0)) if keyname == config.config.get("Keys", "Down"): self.nudge(Vector(0, -1, 0)) Z = self.get_root().mcedit.editor.mainViewport.cameraVector # xxx mouthful absZ = map(abs, Z) if absZ[0] < absZ[2]: forward = (0, 0, (-1 if Z[2] < 0 else 1)) else: forward = ((-1 if Z[0] < 0 else 1), 0, 0) back = map(int.__neg__, forward) left = forward[2], forward[1], -forward[0] right = map(int.__neg__, left) if keyname == config.config.get("Keys", "Forward"): self.nudge(Vector(*forward)) if keyname == config.config.get("Keys", "Back"): self.nudge(Vector(*back)) if keyname == config.config.get("Keys", "Left"): self.nudge(Vector(*left)) if keyname == config.config.get("Keys", "Right"): self.nudge(Vector(*right))
def logAfterTranslation(self, before, toTranslate): if self.scaleMtLogs: after = datetime.now() tInfo = TranslationInfo(self) key = getKey(tInfo.key) scaleMtLog(self.get_status(), after - before, tInfo, key, len(toTranslate))
def get(self): toTranslate = self.get_argument('q') markUnknown = self.get_argument('markUnknown', default='yes') in ['yes', 'true', '1'] try: l1, l2 = map(toAlpha3Code, self.get_argument('langpair').split('|')) except ValueError: self.send_error( 400, explanation='That pair is invalid, use e.g. eng|spa') if self.scaleMtLogs: before = datetime.now() tInfo = TranslationInfo(self) key = getKey(tInfo.key) after = datetime.now() scaleMtLog(400, after - before, tInfo, key, len(toTranslate)) return if '%s-%s' % (l1, l2) in self.pairs: before = self.logBeforeTranslation() pipeline = self.getPipeline(l1, l2) self.notePairUsage((l1, l2)) translated = yield pipeline.translate(toTranslate) self.logAfterTranslation(before, toTranslate) self.sendResponse({ 'responseData': { 'translatedText': self.maybeStripMarks(markUnknown, l1, l2, translated) }, 'responseDetails': None, 'responseStatus': 200 }) self.cleanPairs() else: self.send_error(400, explanation='That pair is not installed') if self.scaleMtLogs: before = datetime.now() tInfo = TranslationInfo(self) key = getKey(tInfo.key) after = datetime.now() scaleMtLog(400, after - before, tInfo, key, len(toTranslate))
def key_down(self, evt): keyname = keys.getKey(evt) if keyname == "Up" and self.selectedBlockIndex > 0: self.selectedBlockIndex -= 1 self.tableview.rows.scroll_to_item(self.selectedBlockIndex) self.blockButton.blockInfo = self.blockInfo elif keyname == "Down" and self.selectedBlockIndex < len(self.matchingBlocks): self.selectedBlockIndex += 1 self.tableview.rows.scroll_to_item(self.selectedBlockIndex) self.blockButton.blockInfo = self.blockInfo
def NYTCongressBillQuery(congressNumber, billID): version = "v3" url = "http://api.nytimes.com/svc/politics/" url = url + version + "/us/legislative/congress/" url = url + congressNumber + "/bills/" + billID + ".json?" url = url + "api-key=" + keys.getKey('nytcongress') req = urllib2.Request(url) opener = urllib2.build_opener() f = opener.open(req) jsonObj = simplejson.load(f) return jsonObj
def NYTCongressBillQuery(congressNumber, billID): version = "v3" url = "http://api.nytimes.com/svc/politics/" url = url + version + "/us/legislative/congress/" url = url + congressNumber + "/bills/" + billID +".json?" url = url + "api-key=" + keys.getKey('nytcongress') req = urllib2.Request(url) opener = urllib2.build_opener() f = opener.open(req) jsonObj = simplejson.load(f) return jsonObj
def logAfterTranslation(self, before, length): after = datetime.now() if self.scaleMtLogs: tInfo = TranslationInfo(self) key = getKey(tInfo.key) scaleMtLog(self.get_status(), after-before, tInfo, key, length) if self.get_status() == 200: oldest = self.stats['timing'][0][0] if self.stats['timing'] else datetime.now() if datetime.now() - oldest > self.STAT_PERIOD_MAX_AGE: self.stats['timing'].pop(0) self.stats['timing'].append( (before, after, length))
def get(self): toTranslate = self.get_argument('q') markUnknown = self.get_argument('markUnknown', default='yes') in ['yes', 'true', '1'] try: l1, l2 = map(toAlpha3Code, self.get_argument('langpair').split('|')) except ValueError: self.send_error(400, explanation='That pair is invalid, use e.g. eng|spa') if self.scaleMtLogs: before = datetime.now() tInfo = TranslationInfo(self) key = getKey(tInfo.key) after = datetime.now() scaleMtLog(400, after-before, tInfo, key, len(toTranslate)) return if '%s-%s' % (l1, l2) in self.pairs: before = self.logBeforeTranslation() pipeline = self.getPipeline(l1, l2) self.notePairUsage((l1, l2)) translated = yield pipeline.translate(toTranslate) self.logAfterTranslation(before, toTranslate) self.sendResponse({ 'responseData': { 'translatedText': self.maybeStripMarks(markUnknown, l1, l2, translated) }, 'responseDetails': None, 'responseStatus': 200 }) self.cleanPairs() else: self.send_error(400, explanation='That pair is not installed') if self.scaleMtLogs: before = datetime.now() tInfo = TranslationInfo(self) key = getKey(tInfo.key) after = datetime.now() scaleMtLog(400, after-before, tInfo, key, len(toTranslate))
def get(self): try: l1, l2 = self.get_argument('langpair').split('|') except ValueError: self.send_error( 400, explanation='That pair is invalid, use e.g. eng|spa') if '%s-%s' % (l1, l2) in self.pairs: # mode = "%s-%s" % (l1, l2) url = self.get_argument('url') data = urllib.request.urlopen(url).read() if chardet: encoding = chardet.detect(data)["encoding"] else: encoding = 'utf-8' text = data.decode(encoding) text = text.replace( 'href="/', 'href="{uri.scheme}://{uri.netloc}/'.format(uri=urlparse(url))) text = re.sub( r'a([^>]+)href=[\'"]?([^\'" >]+)', 'a \\1 href="#" onclick=\'window.parent.translateLink("\\2");\'', text) pipeline = self.getPipeline(l1, l2) translated = yield pipeline.translate(text, nosplit=True) self.sendResponse({ 'responseData': { 'translatedPage': translated }, 'responseDetails': None, 'responseStatus': 200 }) self.cleanPairs() else: self.send_error(400, explanation='That pair is not installed') if self.scaleMtLogs: before = datetime.now() tInfo = TranslationInfo(self) key = getKey(tInfo.key) after = datetime.now() scaleMtLog(400, after - before, tInfo, key, len(toTranslate))
def get(self): try: l1, l2 = self.get_argument('langpair').split('|') except ValueError: self.send_error(400, explanation='That pair is invalid, use e.g. eng|spa') if '%s-%s' % (l1, l2) in self.pairs: # mode = "%s-%s" % (l1, l2) url = self.get_argument('url') data = urllib.request.urlopen(url).read() if chardet: encoding = chardet.detect(data)["encoding"] else: encoding = 'utf-8' text = data.decode(encoding) text = text.replace('href="/', 'href="{uri.scheme}://{uri.netloc}/'.format(uri=urlparse(url))) text = re.sub(r'a([^>]+)href=[\'"]?([^\'" >]+)', 'a \\1 href="#" onclick=\'window.parent.translateLink("\\2");\'', text) pipeline = self.getPipeline(l1, l2) translated = yield pipeline.translate(text, nosplit=True) self.sendResponse({ 'responseData': { 'translatedPage': translated }, 'responseDetails': None, 'responseStatus': 200 }) self.cleanPairs() else: self.send_error(400, explanation='That pair is not installed') if self.scaleMtLogs: before = datetime.now() tInfo = TranslationInfo(self) key = getKey(tInfo.key) after = datetime.now() scaleMtLog(400, after-before, tInfo, key, len(toTranslate))
import keys import dbop from klout import * # Set the Klout auth key api = Klout(keys.getKey('Klout', 'key'),secure=True) # Grab scores for each klout user currently in sql. Sets -1 for # scores that are unavailable def updateScores(): users = dbop.getUsersForKloutUpdate() for user in users: try: print user[1] id = api.identity.klout(screenName=user[1]).get('id') score = api.user.score(kloutId=id).get('score') dbop.updateKloutScore(user[0], score) # TODO: expand the error handling a bit to register a difference between # unavailable klout score and other problems such as auth failure or # service interruption except: dbop.updateKloutScore(user[0], -1)
def logAfterTranslation(self, before, toTranslate): if self.scaleMtLogs: after = datetime.now() tInfo = TranslationInfo(self) key = getKey(tInfo.key) scaleMtLog(self.get_status(), after-before, tInfo, key, len(toTranslate))
def keyUp(self, evt): keyname = evt.dict.get('keyname', None) or keys.getKey(evt) if keyname == config.config.get('Keys', 'Pick Block'): self.pickBlockKey = 0
import dbop import keys import tweepy import datetime import time # Grab config ckey = keys.getKey('Twitter','consumer_key') csecret = keys.getKey('Twitter','consumer_secret') akey = keys.getKey('Twitter','access_key') asecret = keys.getKey('Twitter','access_secret') list_slug = keys.getKey('Twitter', 'list_slug') list_owner = keys.getKey('Twitter', 'list_owner') tweets_per_user = keys.getKey('Twitter','tweets_per_user') include_rts = bool(keys.getKey('Twitter', 'include_rts')) # Set authentication info for twitter OAuth auth = tweepy.OAuthHandler(ckey, csecret) auth.set_access_token(akey, asecret) # Grab all members from the twitter team list, and the configurable quantity of # tweets from each. Add the users and tweets to the db as we get them. # Note: 80 tweets * 1250 users = 100k tweets. 90-100 tweets each should account # for users with lower usage def getTweets(): timeout = None api = tweepy.API(auth) cursor = tweepy.Cursor(api.list_members, list_owner, list_slug) timeout = datetime.datetime.now() + datetime.timedelta(minutes = 15)
import simplejson #serverside libraries setup cmd_subfolder = os.path.realpath( os.path.abspath( os.path.join( os.path.split(inspect.getfile(inspect.currentframe()))[0], "libs/python"))) if cmd_subfolder not in sys.path: sys.path.insert(0, cmd_subfolder) import keys import sunlight import RTC RTC.apikey = sunlight.config.API_KEY = keys.getKey('sunlight') #def RTSCongressQuery(queryType, query): # url = "http://api.realtimecongress.org/api/v1/" # req = urllib2.Request(url + queryType + ".json?" + query + "&apikey=" + keys.getKeys('sunlight')) # opener = urllib2.build_opener() # f = opener.open(req) # jsonObj = simplejson.load(f) # return jsonObj def NYTCongressBillQuery(congressNumber, billID): version = "v3" url = "http://api.nytimes.com/svc/politics/" url = url + version + "/us/legislative/congress/" url = url + congressNumber + "/bills/" + billID + ".json?"
import urllib2 import simplejson #serverside libraries setup cmd_subfolder = os.path.realpath(os.path.abspath(os.path.join(os.path.split(inspect.getfile( inspect.currentframe() ))[0],"libs/python"))) if cmd_subfolder not in sys.path: sys.path.insert(0, cmd_subfolder) import keys import sunlight import RTC RTC.apikey = sunlight.config.API_KEY = keys.getKey('sunlight') #def RTSCongressQuery(queryType, query): # url = "http://api.realtimecongress.org/api/v1/"
import MySQLdb import keys # Get SQL db config host = keys.getKey('SQL','host') user = keys.getKey('SQL','user') passwd = keys.getKey('SQL','passwd') dbname = keys.getKey('SQL','dbname') # Open the db connection, open a new cursor object. Commits must be made manually # by calling commit() below. db = MySQLdb.connect(host=host,user=user,passwd=passwd,db=dbname) db.autocommit(False) cursor = db.cursor() # Adds a twitter user to the sql db. Requires id and screen_name attributes # klout score defaults to -1 so we know to update it later def addUser(user): sql = "INSERT IGNORE INTO users (id,screen_name,klout_score) VALUES (%s,%s,%s)" cursor.execute(sql,(user.id,user.screen_name,-1)) # Get all id and screen_names with previously unset klout scores from the database. # Used for updating klout score def getUsersForKloutUpdate(): cursor.execute("SELECT id,screen_name FROM users WHERE klout_score = -1") return cursor.fetchall() # Add tweet content to sql. Includes user id, tweet id, tweet text, retweet_count # and retweeted bool from the tweepy object. Retweeted bool is currently broken, # only returns false def addTweet(content):