Beispiel #1
0
class Test1AccessTokenSecret(unittest.TestCase):
    def setUp(self):
        try:
            file = open('API.keys', 'r+')
        except IOError:
            print("You need to put key/secret in API.keys")
            raise
        except:
            print("Unexpected error:", sys.exc_info()[0])
        else:
            data = json.load(file)
            file.close()
            self.plurk = PlurkAPI(data["CONSUMER_KEY"], data["CONSUMER_SECRET"])

    def teardown(self):
        pass

    def test_invalid_access_key(self):
        self.plurk.authorize("foor", "bar")
        r = self.plurk.callAPI('/APP/Profile/getOwnProfile')
        self.assertIsNone(r)
        err = self.plurk.error()
        self.assertEqual(err['code'], "400")
        self.assertEqual(err['reason'], "BAD REQUEST")
        self.assertEqual(err['content']['error_text'],
                         "40106:invalid access token")
Beispiel #2
0
class Test1AccessTokenSecret(unittest.TestCase):
    def setUp(self):
        pass

    def teardown(self):
        pass

    def test_invalid_access_key(self):
        self.plurk = PlurkAPI("key", "secret")
        self.plurk.authorize("foor", "bar")
        r = self.plurk.callAPI('/APP/Profile/getOwnProfile')
        self.assertIsNone(r)
        err = self.plurk.error()
        self.assertEqual(err['code'], 400)
        self.assertEqual(err['reason'], "BAD REQUEST")
        self.assertEqual(err['content']['error_text'],
                         "40106:invalid access token")
Beispiel #3
0
class Test1AccessTokenSecret(unittest.TestCase):
    def setUp(self):
        pass

    def teardown(self):
        pass

    def test_invalid_access_key(self):
        self.plurk = PlurkAPI("key", "secret")
        self.plurk.authorize("foor", "bar")
        r = self.plurk.callAPI('/APP/Profile/getOwnProfile')
        self.assertIsNone(r)
        err = self.plurk.error()
        self.assertEqual(err['code'], 400)
        self.assertEqual(err['reason'], "BAD REQUEST")
        self.assertEqual(err['content']['error_text'],
                         "40106:invalid access token")
Beispiel #4
0
def hello(event, context):
    load_dotenv()
    plurkAPI = PlurkAPI(os.environ['PLURK_APP_KEY'],
                        os.environ['PLURK_SECRET'])
    plurkAPI.authorize(os.environ['PLURK_ACCESS_TOKEN'],
                       os.environ['PLRUK_ACCESS_SECRET'])

    query = os.environ['QUERY']
    max_size = int(os.environ['MAX_SIZE'])
    offset = 0
    while offset < max_size:
        results = plurkAPI.callAPI('/APP/PlurkSearch/search',
                                   options={
                                       'query': query,
                                       'offset': offset
                                   })
        filtered = list(filter(sould_replurk, results['plurks']))
        if not filtered:
            break
        plurk_ids = list(map(lambda x: x['plurk_id'], filtered))
        #print(plurk_ids)
        plurkAPI.callAPI('/APP/Timeline/replurk',
                         options={'ids': json.dumps(plurk_ids)})
        offset += results['last_offset']
Beispiel #5
0
        all_plurks = re.sub("\n[A-Za-z0-9_]*:", "\n", all_plurks)
        with open("data/" + i[1] + "_about.txt", "w") as f:
            f.write(about.encode("utf-8"))
        with open("data/" + i[1] + "_content.txt", "w") as f:
            f.write(all_plurks.encode("utf-8"))


OAUTH_REQUEST_TOKEN = "https://www.plurk.com/OAuth/request_token"
OAUTH_kCCESS_TOKEN = "https://www.plurk.com/OAuth/access_token"
key = "5JyesLyP14Hl"
secret = "sZbmxdVjYVjzkkJQ1LgK6z3dr8L1WwBs"
token = "xexYrByo6gIC"
token_secret = "XS6HdIwMX05wTUrTU1DGhalEz0jCuf31"

plurk = PlurkAPI(key, secret)
plurk.authorize(token, token_secret)

if (args.keyword == ""):
    if int(args.friends_n) == 0:
        if int(args.plurks_n) != 0:
            my_Profile = plurk.callAPI("/APP/Profile/getPublicProfile",
                                       options={"user_id": args.user})
            my_id = my_Profile["user_info"]["id"]
            friends_list = [(my_id, args.user)]
            get_friends_data(friends_list)
            exit()
        else:
            print("GG")
            exit()
    if int(args.plurks_n) == 0:
        print("GG")
Beispiel #6
0
#!/usr/bin/python
# -*- coding:utf-8 -*-

import re
import json
import urllib2
import telepot
import time
import pprint
from plurk_oauth import PlurkAPI
from ConfigParser import SafeConfigParser
parser = SafeConfigParser()
parser.read('apitoken.txt')
plurk = PlurkAPI(parser.get('plurk', 'appkey'),
                 parser.get('plurk', 'appsecret'))
plurk.authorize(parser.get('plurk', 'usertoken'),
                parser.get('plurk', 'usersecret'))
try:
    comet = plurk.callAPI('/APP/Realtime/getUserChannel')
except:
    while True:
        comet = plurk.callAPI('/APP/Realtime/getUserChannel')
        if 'channel_name' in comet:
            break
comet_channel = comet.get('comet_server') + "&amp;new_offset=%d"
jsonp_re = re.compile('CometChannel.scriptCallback\((.+)\);\s*')
new_offset = -50


def handle(msg):
    #debug用
    #pprint.pprint(msg)
Beispiel #7
0
#!/usr/bin/python
# -*- coding:utf-8 -*-
 
import re
import json
import urllib.request
import random
from itertools import islice
#import oauth2 as oauth
import sys

from plurk_oauth import PlurkAPI

 
plurk = PlurkAPI('APP_KEY', 'APP_SECRET')
plurk.authorize('ACCEESS_TOKEN', 'ACCESS_TOKEN_SECRET')
 
comet = plurk.callAPI('/APP/Realtime/getUserChannel')
comet_channel = comet.get('comet_server') + "&new_offset=%d"
jsonp_re = re.compile('CometChannel.scriptCallback\((.+)\);\s*');

keywords = [u'什麼', u'甚麼', u'what', u'?', u'?', u'沙小', u'啥']
others = dict({u'儚い': '* https://emos.plurk.com/03860276d09cb8c3af57f4e1f67d7a10_w48_h48.gif ** https://emos.plurk.com/03860276d09cb8c3af57f4e1f67d7a10_w48_h48.gif ** https://emos.plurk.com/03860276d09cb8c3af57f4e1f67d7a10_w48_h48.gif * 儚い~ * https://emos.plurk.com/03860276d09cb8c3af57f4e1f67d7a10_w48_h48.gif ** https://emos.plurk.com/03860276d09cb8c3af57f4e1f67d7a10_w48_h48.gif ** https://emos.plurk.com/03860276d09cb8c3af57f4e1f67d7a10_w48_h48.gif *',
		u'小薰': '......つ!!!! 小千...(臉紅 https://emos.plurk.com/3110c3c233c48956057ec5c4628e3629_w39_h48.png',
		u'kaoru': '什麼事? 可愛的小貓咪?',
		u'喵': '\nhttps://emos.plurk.com/2855722f8a0cac58d9503de3999e3a16_w46_h48.jpeg 喔呀,可愛的小貓咪有什麼事呢? 這麼大的雨,待在這裡可是會感冒的喔?\nhttps://emos.plurk.com/cbf27bddd90675c4baf25fc7ce9c9ee9_w48_h47.jpeg ...薰,你在做什麼?\nhttps://emos.plurk.com/c998f6c405b82415369ee41a5cecb8bb_w48_h48.gif 呦,千聖,我打算給迷失的小貓咪找個家哦\nhttps://emos.plurk.com/2c98e01f6ab8b6483815c43b263e76fc_w47_h48.jpeg ...傘給我\nhttps://emos.plurk.com/8737ccc164cff4da40a56e1048e6d55e_w44_h48.jpeg ?\nhttps://emos.plurk.com/fff851e041880f422788fbc81f1ee159_w45_h48.jpeg 把傘給我幫你拿,這樣你也比較輕鬆吧?',
		u'貓咪': '\n哎呀 看來又有一隻小貓咪因為我的美麗 被奪去了心神\n啊~ 太美也是一種罪惡啊',
	        u'嗚欸': '啊,花音,你又迷路了嗎?',
		u'嗚誒': '啊,花音,你又迷路了嗎? 我們一起走吧',
		u'莎莎': '我的名字不叫莎莎喔,小貓咪',
	        u'千聖': '千聖是我的幼馴染呢,你也喜歡她嗎? 我也是呢 (自豪+儚い閃光',
Beispiel #8
0
class PlurkBot:
    def __init__(self):
        self.startTime = datetime.now(gmt8)
        self.p = PlurkAPI()
        self.p.authorize()
        if self.p.is_authorized():
            print('%s, authorization completed' % now_str())
        else:
            raise RuntimeError('authorize fail')

    def getActive(self):
        return self.p.callAPI('/APP/Alerts/getActive')

    def addAsFriend(self, uid):
        return self.p.callAPI('/APP/Alerts/addAsFriend', {'user_id': uid})

    def poll_getPlurks(self, options):
        return self.p.callAPI('/APP/Polling/getPlurks', options)

    def responseAdd(self, plurkId, content, qualifier=':'):
        options = {
            'plurk_id': plurkId,
            'content': content,
            'qualifier': qualifier
        }
        return self.p.callAPI('/APP/Responses/responseAdd', options)

    def check_notify_and_add_friend(self, logFile):
        t_str = now_str()
        alerts = self.getActive()
        logFile.log('%s, getActive, getAlert=%d' % (t_str, len(alerts)))
        for alert in alerts:
            print('notify type: %s' % alert['type'])
            if alert['type'] == 'friendship_request':
                uid = alert['from_user']['id']
                logFile.log('%s, addAsFriend, uid=%d' % (t_str, uid))
                self.addAsFriend(uid)

    def fetch_newer_plurks(
            self, offset, logFile,
            plurkFile):  # start from offset to now, return plurks
        t_str = now_str()
        options = {
            'offset': offset,
            'limit': '20',
            'minimal_data': 'true',
            'minimal_user': '******'
        }
        data = self.poll_getPlurks(
            options)  # offset = datetime.isoformat(timespec='seconds')
        ls = []
        for pk in data['plurks']:
            plurkFile.log('%s, %s, uid=%d, pkid=%d, %r' %
                          (t_str, gmt2offset(pk['posted']), pk['user_id'],
                           pk['plurk_id'], pk['content_raw']))
            ls.append(pk['plurk_id'])
        logFile.log('%s, Poll/getPlurks, %s, plurk=%d, pks=%s' %
                    (t_str, offset, len(data['plurks']), ls))
        return data['plurks']

    # def fetch_period_plurks(self,dt1,dt2): # start from dt1 to dt2, return plurks
    #     loader = []
    #     dt = dt1
    #     while dt < dt2:
    #         pks = self.fetch_newer_plurks(dt2offset(dt),logFile,plurkFile)
    #         print('from %s, get %d plurk' % (dt2offset(dt), len(pks)))
    #         dt = get_plurk_post_time(pks[-1:]) # update last time
    #         print('last time in plurk: %s' % dt2offset(dt))
    #         if dt < dt2: # add all
    #             loader = loader + pks
    #         else: # overhead
    #             for pk in pks:
    #                 t = get_plurk_post_time(pk)
    #                 if t < dt2:
    #                     print('add plurk, plurkId=%d, postTime=%s' % (pk['plurk_id '], pk['posted']))
    #                     loader.append(pk)
    #                 else:
    #                     break
    #     print('get %d plurk' % len(loader))
    #     return loader

    def test_keywords(self, keywordList, string):
        for i in range(len(keywordList)):
            if keywordList[i] in string:
                return True, i + 1
        return False, None

    def timeline_detect(self, logFile, plurkFile):
        pks = self.fetch_newer_plurks(ts2offset(now() - 62), logFile,
                                      plurkFile)
        keywordList = ['!占星骰', '!占星骰', '#召喚占星骰', '[召喚占星骰]', '召喚占星骰']
        for pk in pks:
            b, i = self.test_keywords(keywordList, pk['content_raw'])
            if b:
                print('has keyword')
                self.reply_astroDice(pk['plurk_id'], i, logFile)

    def reply_astroDice(self, plurkId, keywordId, logFile):
        tpl = dice()
        content = dice2str(tpl)
        logFile.log('%s, responseAdd, keyword=%d, pkid=%d, dice(%s)' %
                    (now_str(), keywordId, plurkId, str(tpl)))
        self.responseAdd(plurkId, content)
Beispiel #9
0
import json


def usage():
    print('''Help Information:
    -h: Show help information
    ''')


if __name__ == '__main__':
    try:
        opts, args = getopt.getopt(sys.argv[1:], "ho:v", ["help", "output="])
    except getopt.GetoptError as err:
        print(str(err))  # will print something like "option -a not recognized"
        usage()
        sys.exit(2)

    with open('API.keys', 'r+') as f:
        data = json.load(f)
        plurk = PlurkAPI(data["CONSUMER_KEY"], data["CONSUMER_SECRET"])
        if data.get('ACCESS_TOKEN'):
            plurk.authorize(data["ACCESS_TOKEN"], data["ACCESS_TOKEN_SECRET"])
        else:
            plurk.authorize()
            data["ACCESS_TOKEN"] = plurk._oauth.oauth_token['oauth_token']
            data["ACCESS_TOKEN_SECRET"] = plurk._oauth.oauth_token['oauth_token_secret']
            f.seek(0)
            json.dump(data, f)

    print(plurk.callAPI('/APP/Profile/getOwnProfile'))
Beispiel #10
0

def usage():
    print('''Help Information:
    -h: Show help information
    ''')


if __name__ == '__main__':
    try:
        opts, args = getopt.getopt(sys.argv[1:], "ho:v", ["help", "output="])
    except getopt.GetoptError as err:
        print(str(err))  # will print something like "option -a not recognized"
        usage()
        sys.exit(2)

    with open('API.keys', 'r+') as f:
        data = json.load(f)
        plurk = PlurkAPI(data["CONSUMER_KEY"], data["CONSUMER_SECRET"])
        if data.get('ACCESS_TOKEN'):
            plurk.authorize(data["ACCESS_TOKEN"], data["ACCESS_TOKEN_SECRET"])
        else:
            plurk.authorize()
            data["ACCESS_TOKEN"] = plurk._oauth.oauth_token['oauth_token']
            data["ACCESS_TOKEN_SECRET"] = plurk._oauth.oauth_token[
                'oauth_token_secret']
            f.seek(0)
            json.dump(data, f)

    print(plurk.callAPI('/APP/Profile/getOwnProfile'))
Beispiel #11
0
    import base36

import urllib.request as urllib2
import sys
import json
from datetime import datetime
import datetime
from html.parser import HTMLParser

with open('token.json', 'r') as reader:
    Tjs = json.loads(reader.read())

TOKEN = Tjs['Discord']['Token']
ChannelID = Tjs['Discord']['ChannelID']
plurk = PlurkAPI(Tjs['Plurk']['APP_KEY'], Tjs['Plurk']['APP_SECRET'])
plurk.authorize(Tjs['Plurk']['ACCEESS_TOKEN'],
                Tjs['Plurk']['ACCESS_TOKEN_SECRET'])

Client = discord.Client()
bot = commands.Bot(command_prefix=Tjs['Discord']['Prefix'])

BlockedUser = dict()


def GetPlurkss():

    return plurk.callAPI('/APP/Timeline/getPlurks',
                         options={
                             'limit': '1',
                             'minimal_data': 'false',
                             'minimal_user': '******'
                         })
Beispiel #12
0
            yin_yang_yao(input_list_summed[4], compute_move=True),
            yin_yang_yao(input_list_summed[5], compute_move=True),
        )
        change_to = baguaToHexagram(strToBagua(up)+strToBagua(down))
    return this_hexa, change_to

config = configparser.RawConfigParser()
config.read('config.ini')
App_key = config.get('SECRET', 'App_key')
App_secret = config.get('SECRET', 'App_secret')
oauth_token_secret = config.get('SECRET', 'oauth_token_secret')
oauth_token = config.get('SECRET', 'oauth_token')

print('Authorizing...')
plurk = PlurkAPI(App_key, App_secret)
plurk.authorize(oauth_token, oauth_token_secret)

# Do some tests for a certain fixed plurk (https://www.plurk.com/p/mpxyit)
req = plurk.callAPI('/APP/Timeline/getPlurk/?plurk_id={}'.format(1373830661))
content_raw = req['plurk']['content_raw']
content = req['plurk']['content']
is_ask = isAsking(content_raw)
if(is_ask):
    h, t = is_ask
    hexagram_raw = content.split('<br />')[h:t+1]
    hexagram_list = [[swapRndnum(int(y.split(' ')[-2][-2])) for y in c.split('<')[1:]] for c in hexagram_raw ]
    print(listToHexagram(hexagram_list))
    


'''