Commit 59999fe515e31d291606530057826761b61bff89

Authored by Nadya Sutjiadi
Committed by GitHub
1 parent 08dbec17

Delete LineApi.py

Showing 1 changed file with 0 additions and 510 deletions
LINETCR/LineApi.py deleted
1 -# -*- coding: utf-8 -*-  
2 -from Api import Poll, Talk, channel  
3 -from lib.curve.ttypes import *  
4 -import requests  
5 -import shutil  
6 -import json  
7 -from random import randint  
8 -  
9 -def def_callback(str):  
10 - print(str)  
11 -  
12 -class LINE:  
13 -  
14 - mid = None  
15 - authToken = None  
16 - cert = None  
17 - channel_access_token = None  
18 - token = None  
19 - obs_token = None  
20 - refresh_token = None  
21 -  
22 -  
23 - def __init__(self):  
24 - self.Talk = Talk()  
25 - self._session = requests.session()  
26 - self._headers = {'X-Line-Application': 'CHROMEOS\t1.4.17\tChrome_OS\t1'}  
27 -  
28 - def login(self, mail=None, passwd=None, cert=None, token=None, qr=False, callback=None):  
29 - if callback is None:  
30 - callback = def_callback  
31 - resp = self.__validate(mail,passwd,cert,token,qr)  
32 - if resp == 1:  
33 - self.Talk.login(mail, passwd, callback=callback)  
34 - elif resp == 2:  
35 - self.Talk.login(mail,passwd,cert, callback=callback)  
36 - elif resp == 3:  
37 - self.Talk.TokenLogin(token)  
38 - elif resp == 4:  
39 - self.Talk.qrLogin(callback)  
40 - else:  
41 - raise Exception("invalid arguments")  
42 -  
43 - self.authToken = self.Talk.authToken  
44 - self.cert = self.Talk.cert  
45 - self._headers = {  
46 - 'X-Line-Application': 'CHROMEOS\t1.4.17\tChrome_OS\t1',  
47 - 'X-Line-Access': self.authToken,  
48 - 'User-Agent': 'Line/1.4.17'  
49 - }  
50 -  
51 - self.Poll = Poll(self.authToken)  
52 - self.channel = channel.Channel(self.authToken)  
53 - self.channel.login()  
54 - self.mid = self.channel.mid  
55 - self.channel_access_token = self.channel.channel_access_token  
56 - self.token = self.channel.token  
57 - self.obs_token = self.channel.obs_token  
58 - self.refresh_token = self.channel.refresh_token  
59 -  
60 -  
61 - """User"""  
62 -  
63 - def getProfile(self):  
64 - return self.Talk.client.getProfile()  
65 -  
66 - def getSettings(self):  
67 - return self.Talk.client.getSettings()  
68 -  
69 - def getUserTicket(self):  
70 - return self.Talk.client.getUserTicket()  
71 -  
72 - def updateProfile(self, profileObject):  
73 - return self.Talk.client.updateProfile(0, profileObject)  
74 -  
75 - def updateSettings(self, settingObject):  
76 - return self.Talk.client.updateSettings(0, settingObject)  
77 -  
78 - def cloneContactProfile(self, mid):  
79 - contact = self.getContact(mid)  
80 - profile = self.getProfile()  
81 - profile.displayName = contact.displayName  
82 - profile.statusMessage = contact.statusMessage  
83 - profile.pictureStatus = contact.pictureStatus  
84 - self.updateDisplayPicture(profile.pictureStatus)  
85 - return self.updateProfile(profile)  
86 -  
87 - def updateDisplayPicture(self, hash_id):  
88 - return self.Talk.client.updateProfileAttribute(0, 8, hash_id)  
89 -  
90 -  
91 - """Operation"""  
92 -  
93 - def fetchOperation(self, revision, count):  
94 - return self.Poll.client.fetchOperations(revision, count)  
95 -  
96 - def fetchOps(self, rev, count):  
97 - return self.Poll.client.fetchOps(rev, count, 0, 0)  
98 -  
99 - def getLastOpRevision(self):  
100 - return self.Talk.client.getLastOpRevision()  
101 -  
102 - def stream(self):  
103 - return self.Poll.stream()  
104 -  
105 - """Message"""  
106 -  
107 - def kedapkedip(self, tomid, text):  
108 - M = Message()  
109 - M.to = tomid  
110 - t1 = "\xf4\x80\xb0\x82\xf4\x80\xb0\x82\xf4\x80\xb0\x82\xf4\x80\xb0\x82"  
111 - t2 = "\xf4\x80\x82\xb3\xf4\x8f\xbf\xbf"  
112 - rst = t1 + text + t2  
113 - M.text = rst.replace("\n", " ")  
114 - return self.Talk.client.sendMessage(0, M)  
115 -  
116 - def removeAllMessages(self, lastMessageId):  
117 - return self.Talk.client.removeAllMessages(0,lastMessageId)  
118 -  
119 - def sendMessage(self, messageObject):  
120 - return self.Talk.client.sendMessage(0,messageObject)  
121 -  
122 - def sendText(self, Tomid, text):  
123 - msg = Message()  
124 - msg.to = Tomid  
125 - msg.text = text  
126 -  
127 - return self.Talk.client.sendMessage(0, msg)  
128 - def post_content(self, url, data=None, files=None):  
129 - return self._session.post(url, headers=self._headers, data=data, files=files)  
130 -  
131 - def sendImage(self, to_, path):  
132 - M = Message(to=to_, text=None, contentType = 1)  
133 - M.contentMetadata = None  
134 - M.contentPreview = None  
135 - M_id = self.Talk.client.sendMessage(0,M).id  
136 - files = {  
137 - 'file': open(path, 'rb'),  
138 - }  
139 - params = {  
140 - 'name': 'media',  
141 - 'oid': M_id,  
142 - 'size': len(open(path, 'rb').read()),  
143 - 'type': 'image',  
144 - 'ver': '1.0',  
145 - }  
146 - data = {  
147 - 'params': json.dumps(params)  
148 - }  
149 -  
150 - r = self.post_content('https://os.line.naver.jp/talk/m/upload.nhn', data=data, files=files)  
151 - print r  
152 - if r.status_code != 201:  
153 - raise Exception('Upload image failure.')  
154 - return True  
155 -  
156 - def sendImageWithURL(self, to_, url):  
157 - """Send a image with given image url  
158 -  
159 - :param url: image url to send  
160 - """  
161 - path = 'pythonLine.data'  
162 -  
163 - r = requests.get(url, stream=True)  
164 - if r.status_code == 200:  
165 - with open(path, 'w') as f:  
166 - shutil.copyfileobj(r.raw, f)  
167 - else:  
168 - raise Exception('Download image failure.')  
169 -  
170 - try:  
171 - self.sendImage(to_, path)  
172 - except Exception as e:  
173 - raise e  
174 -  
175 - def sendAudioWithURL(self, to_, url):  
176 - path = 'pythonLiness.data'  
177 - r = requests.get(url, stream=True)  
178 - if r.status_code == 200:  
179 - with open(path, 'w') as f:  
180 - shutil.copyfileobj(r.raw, f)  
181 - else:  
182 - raise Exception('Download Audio failure.')  
183 - try:  
184 - self.sendAudio(to_, path)  
185 - except Exception as e:  
186 - raise e  
187 -  
188 - def sendAudio(self, to_, path):  
189 - M = Message(to=to_,contentType = 3)  
190 - M.contentMetadata = None  
191 - M.contentPreview = None  
192 - M_id = self.Talk.client.sendMessage(0,M).id  
193 - files = {  
194 - 'file': open(path, 'rb'),  
195 - }  
196 - params = {  
197 - 'name': 'media',  
198 - 'oid': M_id,  
199 - 'size': len(open(path, 'rb').read()),  
200 - 'type': 'audio',  
201 - 'ver': '1.0',  
202 - }  
203 - data = {  
204 - 'params': json.dumps(params)  
205 - }  
206 - r = self.post_content('https://os.line.naver.jp/talk/m/upload.nhn', data=data, files=files)  
207 - if r.status_code != 201:  
208 - raise Exception('Upload image failure.')  
209 - return True  
210 -  
211 - def sendVideo(self, to_, path):  
212 - M = Message(to=to_,contentType = 2)  
213 - M.contentMetadata = {  
214 - 'VIDLEN' : '0',  
215 - 'DURATION' : '0'  
216 - }  
217 - M.contentPreview = None  
218 - M_id = self.Talk.client.sendMessage(0,M).id  
219 - files = {  
220 - 'file': open(path, 'rb'),  
221 - }  
222 - params = {  
223 - 'name': 'media',  
224 - 'oid': M_id,  
225 - 'size': len(open(path, 'rb').read()),  
226 - 'type': 'video',  
227 - 'ver': '1.0',  
228 - }  
229 - data = {  
230 - 'params': json.dumps(params)  
231 - }  
232 - r = self.post_content('https://os.line.naver.jp/talk/m/upload.nhn', data=data, files=files)  
233 - if r.status_code != 201:  
234 - raise Exception('Upload image failure.')  
235 - return True  
236 -  
237 - def sendVideoWithURL(self, to_, url):  
238 - path = 'pythonLines.data'  
239 - r = requests.get(url, stream=True)  
240 - if r.status_code == 200:  
241 - with open(path, 'w') as f:  
242 - shutil.copyfileobj(r.raw, f)  
243 - else:  
244 - raise Exception('Download Audio failure.')  
245 - try:  
246 - self.sendVideo(to_, path)  
247 - except Exception as e:  
248 - raise e  
249 -  
250 - def sendGif(self, to_, path):  
251 - M = Message(to=to_,contentType = 1)  
252 - M.contentMetadata = {  
253 - 'VIDLEN' : '0',  
254 - 'DURATION' : '0'  
255 - }  
256 - M.contentPreview = None  
257 - M_id = self.Talk.client.sendMessage(0,M).id  
258 - files = {  
259 - 'file': open(path, 'rb'),  
260 - }  
261 - params = {  
262 - 'name': 'media',  
263 - 'oid': M_id,  
264 - 'size': len(open(path, 'rb').read()),  
265 - 'type': 'image',  
266 - 'ver': '1.0',  
267 - }  
268 - data = {  
269 - 'params': json.dumps(params)  
270 - }  
271 - r = self.post_content('https://os.line.naver.jp/talk/m/upload.nhn', data=data, files=files)  
272 - if r.status_code != 201:  
273 - raise Exception('Upload Gif failure.')  
274 - return True  
275 -  
276 - def sendGifWithURL(self, to_, url):  
277 - path = 'pythonLiness.data'  
278 - r = requests.get(url, stream=True)  
279 - if r.status_code == 200:  
280 - with open(path, 'w') as f:  
281 - shutil.copyfileobj(r.raw, f)  
282 - else:  
283 - raise Exception('Download Gif failure.')  
284 - try:  
285 - self.sendGif(to_, path)  
286 - except Exception as e:  
287 - raise e  
288 -  
289 - def sendEvent(self, messageObject):  
290 - return self.Talk.client.sendEvent(0, messageObject)  
291 -  
292 - def sendChatChecked(self, mid, lastMessageId):  
293 - return self.Talk.client.sendChatChecked(0, mid, lastMessageId)  
294 -  
295 - def getMessageBoxCompactWrapUp(self, mid):  
296 - return self.Talk.client.getMessageBoxCompactWrapUp(mid)  
297 -  
298 - def getMessageBoxCompactWrapUpList(self, start, messageBox):  
299 - return self.Talk.client.getMessageBoxCompactWrapUpList(start, messageBox)  
300 -  
301 - def getRecentMessages(self, messageBox, count):  
302 - return self.Talk.client.getRecentMessages(messageBox.id, count)  
303 -  
304 - def getMessageBox(self, channelId, messageboxId, lastMessagesCount):  
305 - return self.Talk.client.getMessageBox(channelId, messageboxId, lastMessagesCount)  
306 -  
307 - def getMessageBoxList(self, channelId, lastMessagesCount):  
308 - return self.Talk.client.getMessageBoxList(channelId, lastMessagesCount)  
309 -  
310 - def getMessageBoxListByStatus(self, channelId, lastMessagesCount, status):  
311 - return self.Talk.client.getMessageBoxListByStatus(channelId, lastMessagesCount, status)  
312 -  
313 - def getMessageBoxWrapUp(self, mid):  
314 - return self.Talk.client.getMessageBoxWrapUp(mid)  
315 -  
316 - def getMessageBoxWrapUpList(self, start, messageBoxCount):  
317 - return self.Talk.client.getMessageBoxWrapUpList(start, messageBoxCount)  
318 -  
319 - def getCover(self,mid):  
320 - h = self.getHome(mid)  
321 - objId = h["result"]["homeInfo"]["objectId"]  
322 - return "http://dl.profile.line-cdn.net/myhome/c/download.nhn?userid=" + mid+ "&oid=" + objId  
323 -  
324 - """Contact"""  
325 -  
326 -  
327 - def blockContact(self, mid):  
328 - return self.Talk.client.blockContact(0, mid)  
329 -  
330 -  
331 - def unblockContact(self, mid):  
332 - return self.Talk.client.unblockContact(0, mid)  
333 -  
334 -  
335 - def findAndAddContactsByMid(self, mid):  
336 - return self.Talk.client.findAndAddContactsByMid(0, mid)  
337 -  
338 -  
339 - def findAndAddContactsByMids(self, midlist):  
340 - for i in midlist:  
341 - self.Talk.client.findAndAddContactsByMid(0, i)  
342 -  
343 - def findAndAddContactsByUserid(self, userid):  
344 - return self.Talk.client.findAndAddContactsByUserid(0, userid)  
345 -  
346 - def findContactsByUserid(self, userid):  
347 - return self.Talk.client.findContactByUserid(userid)  
348 -  
349 - def findContactByTicket(self, ticketId):  
350 - return self.Talk.client.findContactByUserTicket(ticketId)  
351 -  
352 - def getAllContactIds(self):  
353 - return self.Talk.client.getAllContactIds()  
354 -  
355 - def getBlockedContactIds(self):  
356 - return self.Talk.client.getBlockedContactIds()  
357 -  
358 - def getContact(self, mid):  
359 - return self.Talk.client.getContact(mid)  
360 -  
361 - def getContacts(self, midlist):  
362 - return self.Talk.client.getContacts(midlist)  
363 -  
364 - def getFavoriteMids(self):  
365 - return self.Talk.client.getFavoriteMids()  
366 -  
367 - def getHiddenContactMids(self):  
368 - return self.Talk.client.getHiddenContactMids()  
369 -  
370 - def CloneContactProfile(self, mid):  
371 - contact = self.getContact(mid)  
372 - profile = self.getProfile()  
373 - profile.displayName = contact.displayName  
374 - profile.statusMessage = contact.statusMessage  
375 - profile.pictureStatus = contact.pictureStatus  
376 - self.updateDisplayPicture(profile.pictureStatus)  
377 - return self.updateProfile(profile)  
378 -  
379 - def updateDisplayPicture(self, hash_id):  
380 - return self.Talk.client.updateProfileAttribute(0, 8, hash_id)  
381 -  
382 -  
383 - """Group"""  
384 -  
385 - def findGroupByTicket(self, ticketId):  
386 - return self.Talk.client.findGroupByTicket(ticketId)  
387 -  
388 - def acceptGroupInvitation(self, groupId):  
389 - return self.Talk.client.acceptGroupInvitation(0, groupId)  
390 -  
391 - def acceptGroupInvitationByTicket(self, groupId, ticketId):  
392 - return self.Talk.client.acceptGroupInvitationByTicket(0, groupId, ticketId)  
393 -  
394 - def cancelGroupInvitation(self, groupId, contactIds):  
395 - return self.Talk.client.cancelGroupInvitation(0, groupId, contactIds)  
396 -  
397 - def createGroup(self, name, midlist):  
398 - return self.Talk.client.createGroup(0, name, midlist)  
399 -  
400 - def getGroup(self, groupId):  
401 - return self.Talk.client.getGroup(groupId)  
402 -  
403 - def getGroups(self, groupIds):  
404 - return self.Talk.client.getGroups(groupIds)  
405 -  
406 - def getGroupIdsInvited(self):  
407 - return self.Talk.client.getGroupIdsInvited()  
408 -  
409 - def getGroupIdsJoined(self):  
410 - return self.Talk.client.getGroupIdsJoined()  
411 -  
412 - def inviteIntoGroup(self, groupId, midlist):  
413 - return self.Talk.client.inviteIntoGroup(0, groupId, midlist)  
414 -  
415 - def kickoutFromGroup(self, groupId, midlist):  
416 - return self.Talk.client.kickoutFromGroup(0, groupId, midlist)  
417 -  
418 - def leaveGroup(self, groupId):  
419 - return self.Talk.client.leaveGroup(0, groupId)  
420 -  
421 - def rejectGroupInvitation(self, groupId):  
422 - return self.Talk.client.rejectGroupInvitation(0, groupId)  
423 -  
424 - def reissueGroupTicket(self, groupId):  
425 - return self.Talk.client.reissueGroupTicket(groupId)  
426 -  
427 - def updateGroup(self, groupObject):  
428 - return self.Talk.client.updateGroup(0, groupObject)  
429 -  
430 - def findGroupByTicket(self,ticketId):  
431 - return self.Talk.client.findGroupByTicket(0,ticketId)  
432 -  
433 - """Room"""  
434 -  
435 - def createRoom(self, midlist):  
436 - return self.Talk.client.createRoom(0, midlist)  
437 -  
438 - def getRoom(self, roomId):  
439 - return self.Talk.client.getRoom(roomId)  
440 -  
441 - def inviteIntoRoom(self, roomId, midlist):  
442 - return self.Talk.client.inviteIntoRoom(0, roomId, midlist)  
443 -  
444 - def leaveRoom(self, roomId):  
445 - return self.Talk.client.leaveRoom(0, roomId)  
446 -  
447 - """TIMELINE"""  
448 -  
449 - def new_post(self, text):  
450 - return self.channel.new_post(text)  
451 -  
452 - def like(self, mid, postid, likeType=1001):  
453 - return self.channel.like(mid, postid, likeType)  
454 -  
455 - def comment(self, mid, postid, text):  
456 - return self.channel.comment(mid, postid, text)  
457 -  
458 - def activity(self, limit=20):  
459 - return self.channel.activity(limit)  
460 -  
461 - def getAlbum(self, gid):  
462 -  
463 - return self.channel.getAlbum(gid)  
464 - def changeAlbumName(self, gid, name, albumId):  
465 - return self.channel.changeAlbumName(gid, name, albumId)  
466 -  
467 - def deleteAlbum(self, gid, albumId):  
468 - return self.channel.deleteAlbum(gid,albumId)  
469 -  
470 - def getNote(self,gid, commentLimit, likeLimit):  
471 - return self.channel.getNote(gid, commentLimit, likeLimit)  
472 -  
473 - def getDetail(self,mid):  
474 - return self.channel.getDetail(mid)  
475 -  
476 - def getHome(self,mid):  
477 - return self.channel.getHome(mid)  
478 -  
479 - def createAlbum(self, gid, name):  
480 - return self.channel.createAlbum(gid,name)  
481 -  
482 - def createAlbum2(self, gid, name, path):  
483 - return self.channel.createAlbum(gid, name, path, oid)  
484 -  
485 -  
486 - def __validate(self, mail, passwd, cert, token, qr):  
487 - if mail is not None and passwd is not None and cert is None:  
488 - return 1  
489 - elif mail is not None and passwd is not None and cert is not None:  
490 - return 2  
491 - elif token is not None:  
492 - return 3  
493 - elif qr is True:  
494 - return 4  
495 - else:  
496 - return 5  
497 -  
498 - def loginResult(self, callback=True):  
499 - if callback is True:  
500 - callback = def_callback  
501 -  
502 - prof = self.getProfile()  
503 -  
504 - print("===============[Chucky_Bot]================")  
505 - print(" Thanks for TCR and my friend")  
506 - print("===============[© By_Nadya]================")  
507 - print("mid -> " + prof.mid)  
508 - print("name -> " + prof.displayName)  
509 - print("authToken -> " + self.authToken)  
510 - print("cert -> " + self.cert if self.cert is not None else "")