def read_dm(self): print("Get Direct messages...") dms = list() try: api = self.api dm = api.list_direct_messages() for x in range(len(dm)): sender_id = dm[x].message_create["sender_id"] message = dm[x].message_create['message_data']['text'] message_data = str(dm[x].message_create['message_data']) json_data = _json.encode_basestring(message_data) print("Getting message -> "+str(message)+" by sender id "+str(sender_id)) if "attachment" not in json_data: print("DM doesn't have any media...") d = dict(message = message, sender_id = sender_id, id = dm[x].id, media = None) dms.append(d) dms.reverse() else: print("DM have a media...") attachment = dm[x].message_create['message_data']['attachment'] d = dict(message = message, sender_id = sender_id, id = dm[x].id, media = attachment['media']['media_url']) dms.append(d) dms.reverse() print(str(len(dms)) + " collected") time.sleep(30) return dms except Exception as ex: print(ex) time.sleep(30) pass
def encode_basestring_ascii(s): s = encode_basestring(s)[1:-1] for n in (ord(c) for c in s if ord(c) > 126): if n < 0x10000: return '\\u{0:04x}'.format(n) else: n -= 0x10000 s1 = 0xd800 | ((n >> 10) & 0x3ff) s2 = 0xdc00 | (n & 0x3ff) return '\\u{0:04x}\\u{1:04x}'.format(s1, s2) return '"{}"'.format(s)
def read_dm(self): print("Get direct messages...") dms = list() try: api = self.api dm = api.list_direct_messages() for x in range(len(dm)): sender_id = dm[x].message_create['sender_id'] message = dm[x].message_create['message_data']['text'] message_data = str(dm[x].message_create['message_data']) json_data = _json.encode_basestring(message_data) print(json_data) print("Getting message -> "+str(message)+" by sender id "+str(sender_id)) if "attachment" not in json_data: print("Dm does not have any media...") d = dict(message=message, sender_id=sender_id, id=dm[x].id, media = None, shorted_media_url = None) dms.append(d) dms.reverse() else: print("Dm have an attachment..") media_type = dm[x].message_create['message_data']['attachment']['media']['type'] print(media_type) if media_type == 'photo': attachment = dm[x].message_create['message_data']['attachment'] d = dict(message=message, sender_id=sender_id, id=dm[x].id, media = attachment['media']['media_url'], shorted_media_url = attachment['media']['url'], type = 'photo') dms.append(d) dms.reverse() elif media_type == 'video': attachment = dm[x].message_create['message_data']['attachment'] media = dm[x].message_create['message_data']['attachment']['media'] # Here is the things, variants[0] it means this bot will upload the LOW Quality of the video # variants[1] is for Medium Quality # and variants[2] is for High Quality # The better Quality, the probability of failed to upload the video will higher media_url = media['video_info']['variants'][0] video_url = media_url['url'] print("video url : " + str(video_url)) d = dict(message=message, sender_id=sender_id, id=dm[x].id, media = video_url, shorted_media_url = attachment['media']['url'], type = 'video') dms.append(d) dms.reverse() print(str(len(dms)) + " collected") time.sleep(60) return dms except Exception as ex: print(ex) time.sleep(60) pass
def read_dm(self): print("Get direct messages...") dms = list() try: api = self.api dm = api.list_direct_messages() for x in range(len(dm)): sender_id = dm[x].message_create['sender_id'] message = dm[x].message_create['message_data']['text'] message_data = str(dm[x].message_create['message_data']) json_data = _json.encode_basestring(message_data) print(json_data) print("Getting message -> " + str(message) + " by sender id " + str(sender_id)) if "attachment" not in json_data: print("Dm does not have any media...") d = dict(message=message, sender_id=sender_id, id=dm[x].id, media=None, shorted_media_url=None) dms.append(d) dms.reverse() else: print("Dm have an attachment..") media_type = dm[x].message_create['message_data'][ 'attachment']['media']['type'] print(media_type) if media_type == 'photo': print("Is a photo") attachment = dm[x].message_create['message_data'][ 'attachment'] d = dict(message=message, sender_id=sender_id, id=dm[x].id, media=attachment['media']['media_url'], shorted_media_url=attachment['media']['url'], type='photo') dms.append(d) dms.reverse() elif media_type == 'video': print("Its a video") attachment = dm[x].message_create['message_data'][ 'attachment'] media = dm[x].message_create['message_data'][ 'attachment']['media'] media_url = media['video_info']['variants'][0] video_url = media_url['url'] print("video url : " + str(video_url)) d = dict(message=message, sender_id=sender_id, id=dm[x].id, media=video_url, shorted_media_url=attachment['media']['url'], type='video') dms.append(d) dms.reverse() print(str(len(dms)) + " collected") time.sleep(60) return dms except Exception as ex: print(ex) time.sleep(60) pass
def read_dm(self): global sender_id print("Get direct messages...") dms = list() try: api = self.api dm = api.list_direct_messages() for x in range(len(dm)): sender_id = dm[x].message_create['sender_id'] message = dm[x].message_create['message_data']['text'] message_data = str(dm[x].message_create['message_data']) json_data = _json.encode_basestring(message_data) print(json_data) print("Getting message -> " + str(message) + " by sender id " + str(sender_id)) keywords = "umkfess" or "Umkfess" or "UMKFess" or "UMKFESS" if keywords in message_data: api.send_direct_message( sender_id, "[Pesan Otomatis]👋\n\nHalo sekarang menfess kamu dalam antrian, " "menfess kamu akan diposting dalam 2-5 menit ya") elif keywords not in message_data: print("Keyword wrong") api.send_direct_message( sender_id, "[Pesan Otomatis]👋🏽👋🏽👋🏽\n\nMohon maaf Keyword salah, menfess kamu " "tidak akan diposting, baca rules dengan benar, dan gunkan keyword " "dengan " "benar, gunakan " "autobase dengan bijak. \n" "https://twitter.com/umkmenfess/status/1278656414747987974" ) if "attachment" not in json_data: print("Dm does not have any media...") d = dict(message=message, sender_id=sender_id, id=dm[x].id, media=None, shorted_media_url=None) dms.append(d) dms.reverse() else: print("Dm have an attachment..") media_type = dm[x].message_create['message_data'][ 'attachment']['media']['type'] print(media_type) if media_type == 'photo': attachment = dm[x].message_create['message_data'][ 'attachment'] d = dict(message=message, sender_id=sender_id, id=dm[x].id, media=attachment['media']['media_url'], shorted_media_url=attachment['media']['url'], type='photo') dms.append(d) dms.reverse() elif media_type == 'video': attachment = dm[x].message_create['message_data'][ 'attachment'] media = dm[x].message_create['message_data'][ 'attachment']['media'] # Here is the things, variants[0] it means this bot will upload the LOW Quality of the video # variants[1] is for Medium Quality # and variants[2] is for High Quality # The better Quality, the probability of failed to upload the video will higher media_url = media['video_info']['variants'][0] video_url = media_url['url'] print("video url : " + str(video_url)) d = dict(message=message, sender_id=sender_id, id=dm[x].id, media=video_url, shorted_media_url=attachment['media']['url'], type='video') dms.append(d) dms.reverse() print(str(len(dms)) + " collected") time.sleep(60) return dms except Exception as ex: print(ex) time.sleep(60) pass