def mention(self, to, nama): aa = "" bb = "" strt = int(0) akh = int(0) nm = nama myid = self.talk.getProfile().mid if myid in nm: nm.remove(myid) for mm in nm: akh = akh + 6 aa += """{"S":"""+json.dumps(str(strt))+""","E":"""+json.dumps(str(akh))+""","M":"""+json.dumps(mm)+"},""" strt = strt + 7 akh = akh + 1 bb += "@nrik \n" aa = (aa[:int(len(aa)-1)]) text = bb try: msg = Message() msg.to = to msg.text = text msg.contentMetadata = {'MENTION':'{"MENTIONEES":['+aa+']}'} msg.contentType = 0 self.talk.sendMessage(0, msg) except Exception as error: print(error, str(error))
def tag(self, to, mid): try: aa = '{"S":"0","E":"3","M":'+json.dumps(mid)+'}' msg = Message() msg.to = to msg.text = '@x ' msg.contentMetadata = {'MENTION':'{"MENTIONEES":['+aa+']}'} msg.contentType = 0 self.talk.sendMessage(0, msg) except Exception as error: print(error)
def sendMessageWithCustomFooter(self, to, text, customName, customLink, customIcon): msg = Message() msg.to = to msg.text = text msg.contentMetadata = { 'AGENT_ICON': customIcon, 'AGENT_NAME': customName, 'AGENT_LINK': customLink } return self.talk.sendMessage(0, msg)
def sendMessageWithFooter(self, to, text, title=None, link=None, iconlink=None, contentMetadata={}): msg = Message() msg.to, msg._from = to, self.profile.mid msg.text = text msg.contentType = 0 msg.contentMetadata = self.generateMessageFooter(title, link, iconlink) if contentMetadata: msg.contentMetadata.update(contentMetadata) if to not in self._messageReq: self._messageReq[to] = -1 self._messageReq[to] += 1 return self.talk.sendMessage(self._messageReq[to], msg)
def sendReplyMessage(self, relatedMessageId, to, text, contentMetadata={}, contentType=0): msg = Message() msg.relatedMessageServiceCode = 1 msg.messageRelationType = 3 msg.relatedMessageId = str(relatedMessageId) msg.to = to msg.text = text msg.contentType = contentType msg.contentMetadata = contentMetadata if to not in self._messageReq: self._messageReq[to] = -1 self._messageReq[to] += 1 return self.talk.sendMessage(self._messageReq[to], msg)
def mentiontag(self, to, nama): aa = "" bb = "" strt = int(12) akh = int(12) nm = nama #print nm for mm in nm: akh = akh + 2 aa += """{"S":"""+json.dumps(str(strt))+""","E":"""+json.dumps(str(akh))+""","M":"""+json.dumps(mm)+"},""" strt = strt + 6 akh = akh + 4 bb += "• @c " aa = (aa[:int(len(aa)-1)]) msg = Message() msg.to = to msg.text = "「Mention」\n"+bb msg.contentMetadata = {'MENTION':'{"MENTIONEES":['+aa+']}','EMTVER':'4'} msg.contentType = 0 self._client.sendMessage(0, msg)
def sendMessageMusic(self, to, title=None, subText=None, url=None, iconurl=None, contentMetadata={}): """ a : Android i : Ios """ self.profile = self.getProfile() self.userTicket = self.generateUserTicket() title = title if title else 'LINE MUSIC' subText = subText if subText else self.profile.displayName url = url if url else 'line://ti/p/' + self.userTicket iconurl = iconurl if iconurl else 'https://obs.line-apps.com/os/p/%s' % self.profile.mid msg = Message() msg.to, msg._from = to, self.profile.mid msg.text = title msg.contentType = 19 msg.contentMetadata = { 'text': title, 'subText': subText, 'a-installUrl': url, 'i-installUrl': url, 'a-linkUri': url, 'i-linkUri': url, 'linkUri': url, 'previewUrl': iconurl, 'type': 'mt', 'a-packageName': 'com.spotify.music', 'countryCode': 'JP', 'id': 'mt000000000a6b79f9' } if contentMetadata: msg.contentMetadata.update(contentMetadata) if to not in self._messageReq: self._messageReq[to] = -1 self._messageReq[to] += 1 return self.talk.sendMessage(self._messageReq[to], msg)
def sendVideo(self, to_, path): M = Message(to=to_, text=None, contentType=2) M.contentMetadata = {'VIDLEN': '60000', 'DURATION': '60000'} M.contentPreview = None M_id = self._client.sendMessage(0, M).id files = {'file': open(path, 'rb')} params = { 'name': 'media', 'oid': M_id, 'size': len(open(path, 'rb').read()), 'type': 'video', 'ver': '1.0', } data = {'params': json.dumps(params)} r = self.server.post_content(self.server.LINE_OBS_DOMAIN + '/talk/m/upload.nhn', data=data, files=files) if r.status_code != 201: raise Exception('Upload video failure.') return True