def shell_message(args): credentials = __get_credentials_cache(screen_name=args.account_name) session = TwitterSession(credentials["consumer_key"], credentials["consumer_secret"], credentials["access_token"], credentials["access_token_secret"]) if bool(args.file_path): for p in args.file_path: with open(p, "br") as f: file_data = b"".join(x for x in f) encoded_data = mybase64.byte_encode(file_data) session.direct_message_new(p + " encoded base64", args.screen_name, args.user_id) print(len(encoded_data)) for split_data in [encoded_data[i: i+10000] for i in range(0, len(encoded_data), 10000)]: session.direct_message_new(split_data, args.screen_name, args.user_id) session.direct_message_new(args.text, args.screen_name, args.user_id) print("Message successful!")
def _make_signature(self, method, url, oauth_params): url_elements = parse.urlparse(url) base_str_uri = url_elements.scheme + "://" + url_elements.netloc + url_elements.path querys = parse.parse_qs(url_elements.query) oauth_params.update(querys) oauth_params_str = "&".join( "=".join(self._quote(x) for x in y) for y in sorted(oauth_params.items()) ) key = b"&".join([self._escape(x) for x in [ self.consumer_secret, self.token_secret ]]) sig_base_str = b"&".join([self._escape(x) for x in [ method, base_str_uri, oauth_params_str ]]) sig_bytes = hmac.new(key, sig_base_str, sha1).digest() return mybase64.byte_encode(sig_bytes)
def _file_encode(self, file_path): with open(file_path, mode="br") as f: raw_data = b"" for buff in f: raw_data += buff return mybase64.byte_encode(raw_data)