def twitter_post_loop(self): while True: if len(config.state.twitter_queue) == 0: with self.twitter_post_condvar: self.twitter_post_condvar.wait() continue sleep = 12 * 60 * 60 # 12 hours if config.state.twitter_last_post_time: sleep = config.state.twitter_last_post_time + sleep - time.time( ) with self.twitter_post_condvar: self.twitter_post_condvar.wait(sleep) if config.state.twitter_last_post_time and \ time.time() < config.state.twitter_last_post_time + 12 * 60 * 60: # we were woken up by a reaction add but it's too early continue try: twitter.post(self, config.state.twitter_queue[0]) config.state.twitter_queue.pop(0) except requests.exceptions.HTTPError as e: log.write('twitter: %s\n%s' % (e, e.response.text[:1000])) except requests.exceptions.RequestException as e: log.write('twitter: %s' % e) except Exception: log.write('twitter post:\n' + traceback.format_exc()) # always update the last post time, even if we failed to tweet config.state.twitter_last_post_time = int(time.time()) config.state.save()
def post_bills_twitter(new_bills): if new_bills: cnt = len(new_bills) twitter.post('지금부터 %d분간 %d분 간격으로 %d개의 새 의안을 트윗할 예정입니다.' % (INTERVAL_MIN * cnt, INTERVAL_MIN, cnt)) for bill_id in new_bills: time.sleep(INTERVAL_SEC) bill = get_bill(bill_id) post_bill_twitter(bill) print '%s posted' % bill['bill_id']
def main(): quote_types_classes = inspect.getmembers( sys.modules['quote_types_factories'], inspect.isclass) cls_quote_type_factory = random.choice(quote_types_classes) quote_factory = cls_quote_type_factory[1]() quote = quote_factory.create() twitter.post(quote)
def main(): local_tz = qrepo.config_timezone() local_dt = datetime.datetime.now(tz=pytz.utc).astimezone(local_tz) print("Starting keikaku at {:%H:%M} in {}".format(local_dt, local_tz)) posts = qrepo.get_posts_ready_to_launch() for p in posts: twitter.post(p) tumblr.post(p) facebook.post(p)
def post_bills_twitter(new_bills): if new_bills: cnt = len(new_bills) interval_min = TWITTER['INTERVAL'] / 60 twitter.post('지금부터 %d분간 %d분 간격으로 %d개의 새 의안을 트윗할 예정입니다.' % (interval_min * cnt, interval_min, cnt)) for bill_id in new_bills: bill = get_bill(bill_id) post_bill_twitter(bill) time.sleep(TWITTER['INTERVAL']) print '%s posted' % bill['bill_id']
def call(): media_id = [] for i in range(4): headers = {"User-Agent": "Mozilla/5.0"} request = urllib.request.Request(url=img_url[i], headers=headers) response = urllib.request.urlopen(request) data = response.read() files = {"media": data} req_media = twitter.post(url_media, files=files) media_id.append(json.loads(req_media.text)['media_id_string']) media_id = ','.join(media_id) status = "投稿テスト" params = {"status": status, "media_ids": media_id} twitter.post(url_text, params=params)
def dele(tweetID, liked, RTed): api = 'https://api.twitter.com/1.1/statuses/destroy/' + tweetID + '.json' req = twitter.post(api) #for debug if req.status_code == 200: print("Deleted!") report(liked,RTed) else: print("Error has occured! ErrorCode: %d" % req.status_code)
def get_twitter_access_token(): if request.args.get('denied'): #認証をキャンセルしたらトップに戻る return redirect("/") oauth_token = request.args.get('oauth_token') oauth_verifier = request.args.get('oauth_verifier') twitter = OAuth1Session( consumer_key, consumer_secret, oauth_token, oauth_verifier, ) response = twitter.post( access_token_url, params={'oauth_verifier': oauth_verifier} ) access_token = dict(parse_qsl(response.content.decode("utf-8"))) session["user_id"] = str(access_token["user_id"]) session["screen_name"] = access_token["screen_name"] # 完全新規ユーザー if User.query.filter_by(user_id=session["user_id"]).first() is None: user = User(user_id=access_token["user_id"], screen_name=access_token["screen_name"], oauth_token=access_token["oauth_token"], oauth_token_secret=access_token["oauth_token_secret"]) db.session.add(user) db.session.commit() api = return_twitter_api() user_info = api.GetUser(user_id=session["user_id"]) user = User.query.filter_by(user_id=session["user_id"]).first() user.user_name = user_info.name user.user_image_url = user_info.profile_image_url_https # 既存ユーザーアップデート else: user = User.query.filter_by(user_id=session["user_id"]).first() user.user_id = access_token["user_id"] user.screen_name = access_token["screen_name"] user.oauth_token = access_token["oauth_token"] user.oauth_token_secret = access_token["oauth_token_secret"] db.session.add(user) db.session.commit() # if session.get("host_id"): # return redirect("/invitation/{}".format(session["host_id"])) # else: return redirect("/")
def pic(media_id, i, j, result): img_url = result[i + 4 * j]['imageUrl'] print(img_url) headers = {"User-Agent": "Mozilla/5.0"} request = urllib.request.Request(url=img_url, headers=headers) response = urllib.request.urlopen(request) print(response) data = response.read() files = {"media": data} req_media = twitter.post(url_media, files=files) media_id.append(json.loads(req_media.text)['media_id_string']) print(media_id) return media_id
def twitter_post_loop(self): while True: sleep = 12 * 60 * 60 # 12 hours if config.state.twitter_last_post_time: sleep = config.state.twitter_last_post_time + sleep - time.time( ) with self.twitter_post_condvar: self.twitter_post_condvar.wait(sleep) if config.state.twitter_last_post_time and \ time.time() < config.state.twitter_last_post_time + 12 * 60 * 60: # we were woken up by a reaction add but it's too early continue if len(config.state.twitter_queue) > 0: try: twitter.post(self, config.state.twitter_queue[0]) config.state.twitter_queue.pop(0) except Exception: log.write('twitter post:\n' + traceback.format_exc()) # always update the last post time, even if we failed to tweet config.state.twitter_last_post_time = int(time.time()) config.state.save()
def tweet(media_id, j, result): now_date = date.today() y = now_date.year m = now_date.month d = now_date.day len_pic = len(media_id) if len_pic == 4: tweet = "{}年{}月{}日のショップその{}\n{} {}vBucks\n{} {}vBucks\n{} {}vBucks\n{} {}vBucks\n#Fortnite #フォートナイトショップ" status = tweet.format( y, m, d, j + 1, result[j * 4]['name'], result[j * 4]['vBucks'], result[j * 4 + 1]['name'], result[j * 4 + 1]['vBucks'], result[j * 4 + 2]['name'], result[j * 4 + 2]['vBucks'], result[j * 4 + 3]['name'], result[j * 4 + 3]['vBucks']) elif len_pic == 3: tweet = "{}年{}月{}日のショップその{}\n{} {}vBucks\n{} {}vBucks\n{} {}vBucks\n#Fortnite #フォートナイトショップ" status = tweet.format(y, m, d, j + 1, result[j * 4]['name'], result[j * 4]['vBucks'], result[j * 4 + 1]['name'], result[j * 4 + 1]['vBucks'], result[j * 4 + 2]['name'], result[j * 4 + 2]['vBucks']) elif len_pic == 2: tweet = "{}年{}月{}日のショップその{}\n{} {}vBucks\n{} {}vBucks\n#Fortnite #フォートナイトショップ" status = tweet.format(y, m, d, j + 1, result[j * 4]['name'], result[j * 4]['vBucks'], result[j * 4 + 1]['name'], result[j * 4 + 1]['vBucks']) else: tweet = "{}年{}月{}日のショップその{}\n{} {}vBucks\n#Fortnite #フォートナイトショップ" status = tweet.format(y, m, d, j + 1, result[j * 4]['name'], result[j * 4]['vBucks']) media_id = ','.join(media_id) params = {"status": status, "media_ids": media_id} print(params) twitter.post(url_text, params=params) time.sleep(5)
def tweet(): if g.user is None: return redirect(url_for('login', next=request.url)) status = request.form['tweet'] if not status: return redirect(url_for('index')) resp = twitter.post('statuses/update.json', data={'status': status}) if resp.status == 403: flash("Error: #%d, %s " % (resp.data.get('errors')[0].get('code'), resp.data.get('errors')[0].get('message'))) elif resp.status == 401: flash('Authorization error with Twitter.') else: flash('Successfully tweeted your tweet (ID: #%s)' % resp.data['id']) return redirect(url_for('index'))
def snarge(user, passwd, hashtag, step, post): if step < 0: return 3, "Step %d cannot be negative" % step scast = models.snargecasts(user, hashtag) if len(scast) == 0: return 1, "No such snargecast" if len(scast) != 1: return 2, "More than one snargecast for user with this hashtag" scast = scast[0] if step >= len(scast.tweet_stream): return 4, "Step %d is past the end of the stream" % step if post: resp = twitter.post(user, passwd, scast.tweet_stream[step]) if resp: return 0, resp.content return 5, "Post to twitter failed" text = scast.tweet_stream[step] message = XMLData.DictToXMLData({}, "status") message.text = text return 0, message.toxml()
def get_twitter_request_token(): # Twitter Application Management で設定したコールバックURL oauth_callback = request.args.get(os.environ.get('APP_BASE_URL') + 'auth/twitter/callback') twitter = OAuth1Session(consumer_key, consumer_secret) response = twitter.post( request_token_url, params={'oauth_callback': oauth_callback} ) request_token = dict(parse_qsl(response.content.decode("utf-8"))) # リクエストトークンから認証画面のURLを生成 authenticate_endpoint = '%s?oauth_token=%s' \ % (authenticate_url, request_token['oauth_token']) request_token.update({'authenticate_endpoint': authenticate_endpoint}) return redirect(authenticate_endpoint)
print '%s posted' % bill['bill_id'] def post_bill_twitter(bill): bill = refine_bill_content(bill) try: proposer = bill['proposer_fullname'] if proposer and proposer in TWITTER_ACCOUNTS: twitter_handle = TWITTER_ACCOUNTS[proposer] if twitter_handle: bill['proposer'] = bill['proposer'].replace(proposer, '%s(@%s)' % (proposer, twitter_handle)) except Exception, e: print e status = '%(proposer)s%(proposer_josa)s "%(title)s"%(title_josa)s 새로 발의하였습니다. http://pokr.kr/bill/%(bill_id)s' % bill twitter.post(status) def truncate(text, max_len): if max_len is None: return text if len(text) > max_len: text = text[:max_len] + '...' return text def yiga(char): if (ord(char) - 44032) % 28: return '이' else:
def main(): """ Main function """ for submission_id, tweet in get_newest(): post(submission_id, tweet)
def postToTwitter(string): twitter.post(string)
def post_bill_twitter(bill): status = '%(proposer)s%(proposer_josa)s "%(title)s"%(title_josa)s 새로 발의하였습니다. http://pokr.kr/bill/%(bill_id)s' % refine_bill_content(bill) twitter.post(status)
if not consumer_key or not consumer_secret or not access_key or not access_secret: print "Some parameters are not set." return 1 #added 2016/10/27 # ツイート投稿用のURL url = "https://api.twitter.com/1.1/statuses/update.json" # ツイート本文 params = {"status": message} # OAuth認証で POST method で投稿 twitter = OAuth1Session(consumer_key, consumer_secret, access_key, access_secret) req = twitter.post(url, params=params) # レスポンスを確認 if req.status_code == 200: print("OK") else: print("Error: %d" % req.status_code) #api = twitter.Api(consumer_key=consumer_key, consumer_secret=consumer_secret, # access_token_key=access_key, access_token_secret=access_secret, # input_encoding='utf-8') #try: # status = api.PostUpdate(message) #except UnicodeDecodeError: # print "Your message could not be encoded. Perhaps it contains non-ASCII characters? "