Advertisement
e55db081d05f58a

getBlocksIDsTwitter

Jan 28th, 2017
4,964
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.69 KB | None | 0 0
  1. #! /usr/bin/python
  2.  
  3. """
  4. getBlocksIDsTwitter
  5. """
  6. __author__ = "e55db081d05f58a"
  7.  
  8. from Crypto import Random
  9. from Crypto.Cipher import AES;
  10. import twitter;
  11. import sys;
  12. import base64;
  13. import hashlib;
  14.  
  15. class AESCipher(object):
  16.  
  17.     def __init__(self, key):
  18.         self.bs = 32
  19.         self.key = hashlib.sha256(key.encode()).digest()
  20.  
  21.     def encrypt(self, raw):
  22.         raw = self._pad(raw)
  23.         iv = Random.new().read(AES.block_size)
  24.         cipher = AES.new(self.key, AES.MODE_CBC, iv)
  25.         return base64.b64encode(iv + cipher.encrypt(raw))
  26.  
  27.     def decrypt(self, enc):
  28.         enc = base64.b64decode(enc)
  29.         iv = enc[:AES.block_size]
  30.         cipher = AES.new(self.key, AES.MODE_CBC, iv)
  31.         return self._unpad(cipher.decrypt(enc[AES.block_size:])).decode('utf-8')
  32.  
  33.     def _pad(self, s):
  34.         return s + (self.bs - len(s) % self.bs) * chr(self.bs - len(s) % self.bs)
  35.  
  36.     @staticmethod
  37.     def _unpad(s):
  38.         return s[:-ord(s[len(s)-1:])]
  39.  
  40. def main():
  41.     if(len(sys.argv) == 3):
  42.         passphrase=str(sys.argv[1]);
  43.         cipher = AESCipher(passphrase);
  44.         ck = cipher.decrypt('CRYPTO_CONSUMER_KEY');
  45.         cs = cipher.decrypt('CRYPTO_CONSUMER_SECRET');
  46.         atk = cipher.decrypt('CRYPTO_ACCESS_TOKEN_KEY');
  47.         ats = cipher.decrypt('CRYPTO_ACCESS_TOKEN_SECRET');
  48.         api=twitter.Api(consumer_key=ck,
  49.                         consumer_secret=cs,
  50.                         access_token_key=atk,
  51.                         access_token_secret=ats);
  52.         c=int(sys.argv[2]);
  53.         ids=api.GetBlocksIDsPaged(c,True)[2];
  54.         nc=api.GetBlocksIDsPaged(c,True)[0];
  55.         i=0;
  56.         while(i<len(ids)):
  57.             print(ids[i]);
  58.             i+=1;
  59.         print("\n\n next: "+str(nc));
  60.     else:
  61.         print("Use: "+sys.argv[0]+" <passphrase> <cursor>");
  62. if __name__=="__main__":
  63.     main();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement