#! /usr/local/bin/python3.6"""Twitter tweet with OAuth only.date name version2017.11.10 mk-mode 1.00 Created.Copyright(C) 2017 mk-mode.com All Rights Reserved."""fromrequests_oauthlibimportOAuth1SessionimportjsonimportsysimporttracebackimportyamlclassTweet:""" Tweet class """YML="twitter.yml"URL_UPD="https://api.twitter.com/1.1/statuses/update.json"def__init__(self):self.ac=sys.argv[1]self.text=sys.argv[2].replace("\\n","\n")withopen(self.YML)asf:self.yml=yaml.load(f)defexec(self):""" Execution """try:ifnot(self.acinself.yml):print("'{}' could not be found!".format(self.ac))sys.exit(0)print("[{}]\n{}".format(self.ac,self.text))status_code,res_json=self.__tweet()ifstatus_code==200:print("(TWEET-ID: {})".format(res_json["id_str"]))else:print("!ERROR! STATUS-CODE: ",status_code)exceptExceptionase:raisedef__tweet(self):""" Tweet """try:oa=OAuth1Session(self.yml[self.ac]["cons_key"],self.yml[self.ac]["cons_sec"],self.yml[self.ac]["accs_key"],self.yml[self.ac]["accs_sec"])res=oa.post(self.URL_UPD,params={"status":self.text})return[res.status_code,json.loads(res.text)]exceptExceptionase:raiseif__name__=='__main__':iflen(sys.argv)<3:print("USAGE: ./tweet.py SCREEN-NAME TWEET-TEXT")sys.exit(0)try:Tweet().exec()exceptExceptionase:traceback.print_exc()sys.exit(1)