예제 #1
0
def getFriendsPlurk(oauth_token, oauth_token_secret, body):
    from plurk_oauth.PlurkAPI import PlurkAPI
    #body = urllib.urlencode(body)
    plurk = PlurkAPI(settings.PLURK_APP_KEY, settings.PLURK_APP_SECRET)
    plurk.authorize(oauth_token, oauth_token_secret)
    dd = plurk.callAPI('/APP/FriendsFans/getFriendsByOffset', body)
    return dd
예제 #2
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")
예제 #3
0
 def test_invalid_consumer_key(self):
     self.plurk = PlurkAPI("token", "secret")
     r = self.plurk.callAPI('/APP/Profile/getPublicProfile',
             {'user_id': 'clsung'})
     self.assertIsNone(r)
     err = self.plurk.error()
     self.assertEqual(err['code'], "400")
     self.assertEqual(err['reason'], "BAD REQUEST")
     self.assertEqual(err['content']['error_text'],
         "40101:unknown application key")
예제 #4
0
class TestAPIAuth(unittest.TestCase):
    '''
    Unit test for PlurkAPI auth part
    '''
    def setUp(self):
        self.mox = mox.Mox()
        self.api = PlurkAPI('CONSUMER_KEY', 'CONSUMER_SECRET')
        self.oauth_response = \
        'oauth_token_secret=O7WqqqWHA61f4ZE5izQdTQmK&oauth_token=ReqXBFOswcyR&oauth_callback_confirmed=true'
        self.verify_response = \
        'oauth_token_secret=O7WqqqWHA61f4ZE5izQdTQmK&oauth_token=ReqXBFOswcyR'
        self.golden_token = {
            'key': 'ReqXBFOswcyR',
            'secret': 'O7WqqqWHA61f4ZE5izQdTQmK',
        }
        self.golden_url = 'http://www.plurk.com/OAuth/authorize?oauth_token=ReqXBFOswcyR'
        self.mox.StubOutWithMock(PlurkOAuth, 'request')

    def tearDown(self):
        self.mox.UnsetStubs()

    def _200_request(self):
        return 200, self.oauth_response, ""

    def _200_verify(self):
        return 200, self.verify_response, ''

    def test_set_request_token(self):
        self.api.set_request_token('ReqXBFOswcyR', 'O7WqqqWHA61f4ZE5izQdTQmK')
        token = self.api.get_request_token()
        self.assertEqual(self.golden_token, token)
        self.mox.VerifyAll()

    def test_get_request_token(self):
        self.api._oauth.request(mox.IgnoreArg()).AndReturn(self._200_request())
        self.mox.ReplayAll()
        token = self.api.get_request_token()
        self.assertEqual(self.golden_token, token)
        self.mox.VerifyAll()

    def test_get_verifier_url(self):
        self.api.set_request_token('ReqXBFOswcyR', 'O7WqqqWHA61f4ZE5izQdTQmK')
        url = self.api.get_verifier_url()
        self.assertEqual(self.golden_url, url)
        self.mox.VerifyAll()

    def test_get_access_token(self):
        self.api._oauth.request(mox.IgnoreArg(),
                                mox.IgnoreArg()).AndReturn(self._200_verify())
        self.mox.ReplayAll()
        self.api.set_request_token('ReqXBFOswcyR', 'O7WqqqWHA61f4ZE5izQdTQmK')
        token = self.api.get_access_token('VERIFIER')
        self.assertEqual(self.golden_token, token)
        self.mox.VerifyAll()
예제 #5
0
 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"])
예제 #6
0
 def setUp(self):
     self.mox = mox.Mox()
     self.api = PlurkAPI('CONSUMER_KEY', 'CONSUMER_SECRET')
     self.oauth_response = \
     'oauth_token_secret=O7WqqqWHA61f4ZE5izQdTQmK&oauth_token=ReqXBFOswcyR&oauth_callback_confirmed=true'
     self.verify_response = \
     'oauth_token_secret=O7WqqqWHA61f4ZE5izQdTQmK&oauth_token=ReqXBFOswcyR'
     self.golden_token = {
         'key': 'ReqXBFOswcyR',
         'secret': 'O7WqqqWHA61f4ZE5izQdTQmK',
     }
     self.golden_url = 'http://www.plurk.com/OAuth/authorize?oauth_token=ReqXBFOswcyR'
     self.mox.StubOutWithMock(PlurkOAuth, 'request')
예제 #7
0
class TestAPIAuth(unittest.TestCase):
    """
    Unit test for PlurkAPI auth part
    """

    def setUp(self):
        self.mox = mox.Mox()
        self.api = PlurkAPI("CONSUMER_KEY", "CONSUMER_SECRET")
        self.oauth_response = (
            "oauth_token_secret=O7WqqqWHA61f4ZE5izQdTQmK&oauth_token=ReqXBFOswcyR&oauth_callback_confirmed=true"
        )
        self.verify_response = "oauth_token_secret=O7WqqqWHA61f4ZE5izQdTQmK&oauth_token=ReqXBFOswcyR"
        self.golden_token = {"key": "ReqXBFOswcyR", "secret": "O7WqqqWHA61f4ZE5izQdTQmK"}
        self.golden_url = "http://www.plurk.com/OAuth/authorize?oauth_token=ReqXBFOswcyR"
        self.mox.StubOutWithMock(PlurkOAuth, "request")

    def tearDown(self):
        self.mox.UnsetStubs()

    def _200_request(self):
        return 200, self.oauth_response, ""

    def _200_verify(self):
        return 200, self.verify_response, ""

    def test_set_request_token(self):
        self.api.set_request_token("ReqXBFOswcyR", "O7WqqqWHA61f4ZE5izQdTQmK")
        token = self.api.get_request_token()
        self.assertEqual(self.golden_token, token)
        self.mox.VerifyAll()

    def test_get_request_token(self):
        self.api._oauth.request(mox.IgnoreArg()).AndReturn(self._200_request())
        self.mox.ReplayAll()
        token = self.api.get_request_token()
        self.assertEqual(self.golden_token, token)
        self.mox.VerifyAll()

    def test_get_verifier_url(self):
        self.api.set_request_token("ReqXBFOswcyR", "O7WqqqWHA61f4ZE5izQdTQmK")
        url = self.api.get_verifier_url()
        self.assertEqual(self.golden_url, url)
        self.mox.VerifyAll()

    def test_get_access_token(self):
        self.api._oauth.request(mox.IgnoreArg(), mox.IgnoreArg()).AndReturn(self._200_verify())
        self.mox.ReplayAll()
        self.api.set_request_token("ReqXBFOswcyR", "O7WqqqWHA61f4ZE5izQdTQmK")
        token = self.api.get_access_token("VERIFIER")
        self.assertEqual(self.golden_token, token)
        self.mox.VerifyAll()
예제 #8
0
class TestTwoLeggedAPI(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_get_public_profile(self):
        jdata = self.plurk.callAPI('/APP/Profile/getPublicProfile',
                                   {'user_id': 'clsung'})
        self.assertIsInstance(jdata, dict, "Object is a dict")
        self.assertGreater(jdata['user_info']['uid'], 0, "Self Uid > 0")
        self.assertEqual(jdata['user_info']['nick_name'], "clsung",
                         "Author's Name ;)")
예제 #9
0
파일: views.py 프로젝트: legnaleurc/sinkmb
def __getAPI__( user ):
	try:
		token = Access.objects.get( user__exact = user )
	except Access.DoesNotExist:
		# TODO report error
		raise
	api = PlurkAPI( plurk.CONSUMER_KEY, plurk.CONSUMER_SECRET, token.key, token.secret )
	return api
예제 #10
0
 def test_invalid_consumer_key(self):
     self.plurk = PlurkAPI("token", "secret")
     r = self.plurk.callAPI("/APP/Profile/getPublicProfile", {"user_id": "clsung"})
     self.assertIsNone(r)
     err = self.plurk.error()
     self.assertEqual(err["code"], "400")
     self.assertEqual(err["reason"], "BAD REQUEST")
     self.assertEqual(err["content"]["error_text"], "40101:unknown application key")
예제 #11
0
파일: views.py 프로젝트: legnaleurc/sinkmb
def callback( request ):
	try:
		requestKey = request.GET['oauth_token']
		verifier = request.GET['oauth_verifier']
	except Exception:
		# TODO error page
		raise
	try:
		requestToken = Request.objects.get( user__exact = request.user )
	except Request.DoesNotExist:
		# TODO error page
		raise
	api = PlurkAPI( plurk.CONSUMER_KEY, plurk.CONSUMER_SECRET )
	api._oauth.oauth_token['oauth_token'] = requestToken.key
	api._oauth.oauth_token['oauth_token_secret'] = requestToken.secret
	requestToken.delete()
	try:
		api._oauth.get_access_token( verifier )
		accessKey = api._oauth.oauth_token['oauth_token']
		accessSecret = api._oauth.oauth_token['oauth_token_secret']
	except Exception:
		# TODO error page
		raise
	try:
		record = Access.objects.get( user__exact = request.user )
		record.key = accessKey
		record.secret = accessSecret
	except Access.DoesNotExist:
		record = Access( user = request.user, key = accessKey, secret = accessSecret )
		record.save()

	# add read id for user
	me = api.callAPI( '/APP/Profile/getOwnProfile' )
	if me == None:
		raise Exception( api.error() )
	me = me['user_info']['nick_name']
	try:
		realID = RealID.objects.get( user__exact = request.user, account__exact = me )
		realID.name = request.user.username
	except RealID.DoesNotExist:
		realID = RealID( user = request.user, name = request.user.username, account = me )
	realID.save()

	return redirect( '/' )
예제 #12
0
 def setUp(self):
     self.mox = mox.Mox()
     self.api = PlurkAPI("CONSUMER_KEY", "CONSUMER_SECRET")
     self.oauth_response = (
         "oauth_token_secret=O7WqqqWHA61f4ZE5izQdTQmK&oauth_token=ReqXBFOswcyR&oauth_callback_confirmed=true"
     )
     self.verify_response = "oauth_token_secret=O7WqqqWHA61f4ZE5izQdTQmK&oauth_token=ReqXBFOswcyR"
     self.golden_token = {"key": "ReqXBFOswcyR", "secret": "O7WqqqWHA61f4ZE5izQdTQmK"}
     self.golden_url = "http://www.plurk.com/OAuth/authorize?oauth_token=ReqXBFOswcyR"
     self.mox.StubOutWithMock(PlurkOAuth, "request")
예제 #13
0
class Test0ConsumerTokenSecret(unittest.TestCase):
    def setUp(self):
        pass

    def teardown(self):
        pass

    def test_no_consumer_key(self):
        with self.assertRaises(ValueError):
            self.plurk = PlurkAPI()
            self.plurk.callAPI("/APP/Profile/getPublicProfile", {"user_id": "clsung"})

    def test_invalid_consumer_key(self):
        self.plurk = PlurkAPI("token", "secret")
        r = self.plurk.callAPI("/APP/Profile/getPublicProfile", {"user_id": "clsung"})
        self.assertIsNone(r)
        err = self.plurk.error()
        self.assertEqual(err["code"], "400")
        self.assertEqual(err["reason"], "BAD REQUEST")
        self.assertEqual(err["content"]["error_text"], "40101:unknown application key")
예제 #14
0
class Test0ConsumerTokenSecret(unittest.TestCase):
    def setUp(self):
        pass

    def teardown(self):
        pass

    def test_no_consumer_key(self):
        with self.assertRaises(ValueError):
            self.plurk = PlurkAPI()
            self.plurk.callAPI('/APP/Profile/getPublicProfile',
                {'user_id': 'clsung'})

    def test_invalid_consumer_key(self):
        self.plurk = PlurkAPI("token", "secret")
        r = self.plurk.callAPI('/APP/Profile/getPublicProfile',
                {'user_id': 'clsung'})
        self.assertIsNone(r)
        err = self.plurk.error()
        self.assertEqual(err['code'], "400")
        self.assertEqual(err['reason'], "BAD REQUEST")
        self.assertEqual(err['content']['error_text'],
            "40101:unknown application key")
예제 #15
0
파일: views.py 프로젝트: legnaleurc/sinkmb
def connect( request ):
	api = PlurkAPI( plurk.CONSUMER_KEY, plurk.CONSUMER_SECRET )
	api._oauth.get_request_token()
	# store request token for next step
	uri = api._oauth.get_verifier_url()
	try:
		requestToken = Request.objects.get( user__exact = request.user )
		requestToken.key = api._oauth.oauth_token['oauth_token']
		requestToken.secret = api._oauth.oauth_token['oauth_token_secret']
	except Request.DoesNotExist:
		requestToken = Request( user = request.user, key = api._oauth.oauth_token['oauth_token'], secret = api._oauth.oauth_token['oauth_token_secret'] )
	requestToken.save()

	return redirect( uri )
예제 #16
0
class TestTwoLeggedAPI(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_get_public_profile(self):
        jdata = self.plurk.callAPI("/APP/Profile/getPublicProfile", {"user_id": "clsung"})
        self.assertIsInstance(jdata, dict, "Object is a dict")
        self.assertGreater(jdata["user_info"]["uid"], 0, "Self Uid > 0")
        self.assertEqual(jdata["user_info"]["nick_name"], "clsung", "Author's Name ;)")
예제 #17
0
def plurk_authorize(  ): 
	plurk = PlurkAPI("GZpz46uhKUJv", "EWoX6KK9laSEOhtWCJt8n6xZUmvxrliq")
	plurk.authorize("UNtfaxzZFPI2", "BXP7E9V8GVrHFWJaIDCiZ2ArXKF0xrB8")
	return plurk	
예제 #18
0
def init(consumer_key = CONSUMER_KEY, consumer_secret = CONSUMER_SECRET, app_token = APP_TOKEN, app_secret = APP_SECRET):
    return PlurkAPI(consumer_key, consumer_secret, app_token, app_secret)
예제 #19
0
from sys import argv
from plurk_oauth.PlurkAPI import PlurkAPI
import json
import socket

plurk = PlurkAPI("TmJ2fUfRcy3X", "kuBsGZH8qBw34h9uytZgNWFC37PkYv66")
plurk.authorize("fqG3DURTDfvA", "EcpTJdGsxHEaCx4TxIMlKR1tksPEuf09")

script, filename = argv
infile = open(filename, "r")

filename_prefix = filename.split("/")[-1]

total_length = len(infile.read().split("\n"))
infile.close()
infile = open(filename, "r")

errorfile = open("error/%s.error.txt" % (filename_prefix), "w")
outf = open("result/%s.user_table.txt" % (filename_prefix), "w")

#print >> outfile, (string[0] + "\tgender")

i = 0
for l in infile:
    tmp = l.strip().split("\t")
    userid = tmp[0]
    try:
        temp = plurk.callAPI("/APP/Profile/getPublicProfile",
                             {"user_id": userid})
    except:
        continue
예제 #20
0
파일: pypyNPC.py 프로젝트: mp607/pypyNPC
            'plurk_id': p['plurk_id'],
            'content': resp.encode('utf-8'),
            'qualifier': 'likes' 
            })

    db.insert_findSongs(
        user,
        p['plurk_id'],
        name,
        songs[0]['id'],
        songs[1]['id']
        )

if __name__ == "__main__":
    # 初始化
    plurk = PlurkAPI.fromfile('API.keys')

    if plurk:
        # 自動加入所有好友
        plurk.callAPI('/APP/Alerts/addAllAsFriends')

        # 記一下自己的plurk id
        myID = str(plurk.callAPI('/APP/Users/me')['id'])

        # Database
        db = DB(dburl='sqlite:///db/pypyNPC.db')

        # Start NPC
        npc()

예제 #21
0
 def setUp(self):
     self.plurk = PlurkAPI.fromfile('API.keys')
     if not self.plurk.is_authorized:
         raise KeyError("You need to put cunsomer/access key/secret in API.keys")
예제 #22
0
 def test_no_consumer_key(self):
     with self.assertRaises(ValueError):
         self.plurk = PlurkAPI()
         self.plurk.callAPI("/APP/Profile/getPublicProfile", {"user_id": "clsung"})
예제 #23
0
 def test_no_consumer_key(self):
     with self.assertRaises(ValueError):
         self.plurk = PlurkAPI()
         self.plurk.callAPI('/APP/Profile/getPublicProfile',
             {'user_id': 'clsung'})
예제 #24
0
from sys import argv
from plurk_oauth.PlurkAPI import PlurkAPI
import json
import socket




plurk = PlurkAPI("TmJ2fUfRcy3X", "kuBsGZH8qBw34h9uytZgNWFC37PkYv66")
plurk.authorize("fqG3DURTDfvA", "EcpTJdGsxHEaCx4TxIMlKR1tksPEuf09")

script, filename= argv
infile = open(filename, "r")

filename_prefix= filename.split("/")[-1]

total_length = len( infile.read().split("\n") )
infile.close()
infile = open(filename, "r")

errorfile = open("error/%s.error.txt" %( filename_prefix ) , "w")
outf = open("result/%s.user_table.txt" %( filename_prefix ), "w") 

#print >> outfile, (string[0] + "\tgender")


i= 0
for l in infile:
	tmp = l.strip().split("\t")
	userid = tmp[0]
	try:
예제 #25
0
from plurk_oauth.PlurkAPI import PlurkAPI
from collections import OrderedDict
import traceback
import scraperwiki
import sys
import json

api_key = "REDACTED"
api_secret = "REDACTED"

argument = sys.argv[1]
plurk = PlurkAPI(api_key, api_secret)


class InvalidArgumentError(Exception):
    pass


def main():
    try:
        if len(sys.argv) != 2:
            raise InvalidArgumentError(
                "Please supply a single argument. An example would be 'kittens'"
            )
        else:
            search_plurk(argument)

    except Exception, e:
        scraperwiki.status('error', type(e).__name__)
        print json.dumps({
            'error': {