예제 #1
0
파일: bot.py 프로젝트: utkarshdubey/sbot
    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()
예제 #2
0
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']
예제 #3
0
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)
예제 #4
0
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)
예제 #5
0
파일: post.py 프로젝트: teampopong/pokrbot
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']
예제 #6
0
파일: tweet.py 프로젝트: tnb1021/tweetimgs
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)
예제 #7
0
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)
예제 #8
0
파일: routes.py 프로젝트: hitowaft/NGAC
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("/")
예제 #9
0
파일: bot.py 프로젝트: tnb1021/fortnitebot
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
예제 #10
0
파일: bot.py 프로젝트: JoshuaS3/sbot
    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()
예제 #11
0
파일: bot.py 프로젝트: tnb1021/fortnitebot
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)
예제 #12
0
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'))
예제 #13
0
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()
예제 #14
0
파일: routes.py 프로젝트: hitowaft/NGAC
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)
예제 #15
0
파일: post.py 프로젝트: teampopong/pokrbot
        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:
예제 #16
0
def main():
    """
    Main function
    """
    for submission_id, tweet in get_newest():
        post(submission_id, tweet)
예제 #17
0
def postToTwitter(string):
    twitter.post(string)
예제 #18
0
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)
예제 #19
0
    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? "