LINE DemoS Bot - CHRLINE API
pip install CHRLINE
What is CHRLINE?
It is LINE Chrome API, just for debug
If you can help update this project,
Welcome join our Discord
About Project
This project is for debug only, because it does not use thrift
So I don't recommend you to use this to run the bot, even if it has many functions
What can it do?
If you have a certain degree of understanding of Line thrift, then you must have heard of TMoreCompact
But for most people, it is difficult to decompile TMoreCompact, even if it has lower confusion in some version
But if you can use this project to understand the differences in LINE thrift
TMoreCompactProtocol
We added the simple function of TMoreCompact for the first time on 26 May
And added TMoreCompact to the development version at Jul 8
It's based on the thrift of the LINE Android version
Its purpose is to effectively compress mid (32 bytes) to 16 bytes
Example
from CHRLINE import *
cl = CHRLINE() # login
print('/S3 - len: %s' % len(cl.testTBinary()))
print('/S4 - len: %s' % len(cl.testTCompact()))
print('/S5 - len: %s' % len(cl.testTMoreCompact()))
Result
> /S3 - len: 576
> /S4 - len: 528
> /S5 - len: 496
This shows that TMoreCompact has the best compression
If you want to write TMoreCompact, only need to sniff results and reverse engineer
Requirement
- Python 3.6
- pycrypto
- pycryptodome
- xxhash
- httpx[http2]
- gevent
Thanks
This project got their help directly/indirectly, thank them deeply
- fadhiilrachman
- ii64
- γγγͺγΌ
- Zero Cool
- sakura
- γγγγ
- LINE GUILTY CROWN LOST XMAS & Hey LINE! 's group members
- Discord DemoS's group members
Function overview
- E2EE SQR Login
- E2EE Email Login
- Services
- TalkService
- getEncryptedIdentity
- getContact
- getContacts
- getGroup
- getGroups
- getGroupsV2
- getCompactGroup
- getChats
- sendMessage
- sendContact
- sendLocation
- sendCompactMessage
- sendMessageWithChunks
- getGroupIdsJoined
- getGroupIdsInvited
- getAllContactIds
- getBlockedContactIds
- getBlockedRecommendationIds
- getAllReadMessageOps
- getLastOpRevision
- getServerTime
- getConfigurations
- fetchOps
- deleteOtherFromChat
- cancelChatInvitation
- acceptChatInvitation
- getContactsV2
- acceptChatInvitationByTicket
- getPreviousMessagesV2WithRequest
- sendChatChecked
- unsendMessage
- findAndAddContactsByMid
- inviteIntoChat
- deleteSelfFromChat
- findChatByTicket
- updateChat
- sendPostback
- wakeUpLongPolling
- getMessageBoxes
- getMessageReadRange
- getChatRoomAnnouncementsBulk
- removeChatRoomAnnouncement
- fetchOperations
- unblockContact
- blockContact
- acquireEncryptedAccessToken
- getCountries
- createRoomV2
- createChatRoomAnnouncement
- getAllChatMids
- reissueChatTicket
- sendEchoPush
- getRepairElements
- getSettingsAttributes2
- updateSettingsAttributes2
- rejectChatInvitation
- updateProfileAttribute
- negotiateE2EEPublicKey
- react
- getE2EEPublicKey
- getE2EEPublicKeys
- getE2EEPublicKeysEx
- registerE2EEPublicKey
- registerE2EEGroupKey
- getE2EEGroupSharedKey
- getLastE2EEGroupSharedKey
- getLastE2EEPublicKeys
- requestE2EEKeyExchange
- respondE2EEKeyExchange
- createChat
- updateRegion
- getChatExistence
- getChatMembership
- setChatHiddenStatus
- getReadMessageOps
- getReadMessageOpsInBulk
- getE2EEMessageInfo
- getMessageBoxCompactWrapUpList
- getRecentMessages
- getRecentMessagesV2
- getPreviousMessageIds
- getMessagesByIds
- getMessageBoxesByIds
- getMessageBoxCompactWrapUpListV2
- getPreviousMessagesV2
- getPreviousMessagesV2WithReadCount
- getNextMessagesV2
- getAllRoomIds
- getCompactRooms
- acquireCallTicket
- isAbusive
- removeBuddySubscriptionAndNotifyBuddyUnregistered
- makeUserAddMyselfAsContact
- getFollowers
- getFollowings
- removeFollower
- follow
- unfollow
- bulkFollow
- decryptFollowEMid
- getChatRoomBGMs
- updateChatRoomBGM
- addSnsId
- removeSnsId
- getContactRegistration
- getHiddenContactMids
- blockRecommendation
- unblockRecommendation
- getRecommendationIds
- sync (for IOS)
- reissueTrackingTicket
- updateChatRoomAnnouncement
- getExtendedProfile
- updateExtendedProfileAttribute
- setNotificationsEnabled
- findAndAddContactsByPhone
- findAndAddContactsByUserid
- syncContacts
- getContactWithFriendRequestStatus
- findContactsByPhone
- findContactByUserid
- findContactByMetaTag
- findAndAddContactByMetaTag
- updateContactSetting
- getFavoriteMids
- sendMessageAwaitCommit
- findContactByUserTicket
- invalidateUserTicket
- unregisterUserAndDevice
- checkCanUnregisterEx
- verifyQrcode
- reportAbuseEx
- reportAbuseExWithMessage
- reportAbuseExWithLineMeeting
- getCountryWithRequestIp
- updateProfileAttributes
- updateNotificationToken
- getRecentFriendRequests
- notifyRegistrationComplete
- noop
- getAnalyticsInfo
- isUseridAvailable
- registerUserid
- notifyUpdated
- reportPushRecvReports
- addToFollowBlacklist
- removeFromFollowBlacklist
- getFollowBlacklist
- AccessTokenRefreshService
- refreshAccessToken
- reportRefreshedAccessToken
- AccountAuthFactorEapConnectService
- connectEapAccount
- disconnectEapAccount
- openAAFECSession
- verifyEapLogin
- AuthService
- openAuthSession
- getAuthRSAKey
- setIdentifier
- updateIdentifier
- resendIdentifierConfirmation
- confirmIdentifier
- removeIdentifier
- getClovaAppToken
- loginFromClova
- validateClovaRequest
- setClovaCredential
- validateClovaAppToken
- verifyQrcodeWithE2EE
- confirmE2EELogin
- issueV3TokenForPrimary
- BotExternalService
- notifyOATalkroomEvents (WIP)
- notifyChatAdEntry
- BuddyService
- getPromotedBuddyContacts
- getBuddyDetailWithPersonal
- getBuddyContacts
- getBuddyTopView
- getBuddyNewsView
- getBuddyDetail
- CallService
- acquireCallRoute
- acquireOACallRoute
- searchPaidCallUserRate
- acquirePaidCallCurrencyExchangeRate
- lookupPaidCall
- acquirePaidCallRoute
- getPaidCallBalanceList
- getPaidCallHistory
- getCallCreditProducts
- reserveCallCreditPurchase
- getCallCreditPurchaseHistory
- redeemPaidCallVoucher
- getPaidCallMetadata
- acquireGroupCallRoute
- getGroupCall
- inviteIntoGroupCall
- markPaidCallAd
- getPaidCallAdStatus
- acquireTestCallRoute
- getGroupCallUrls
- createGroupCallUrl
- deleteGroupCallUrl
- updateGroupCallUrl
- getGroupCallUrlInfo
- joinChatByCallUrl
- ChannelService
- issueChannelToken
- approveChannelAndIssueChannelToken
- getChannelInfo
- getCommonDomains
- issueRequestTokenWithAuthScheme
- getReturnUrlWithRequestTokenForAutoLogin
- ChatAppService
- getChatapp
- getMyChatapps
- E2EEKeyBackupService
- createE2EEKeyBackup
- getE2EEKeyBackupCertificates
- getE2EEKeyBackupInfo
- LiffService
- issueLiffView
- getLiffViewWithoutUserContext
- issueSubLiffView
- PrimaryAccountInitService
- openPrimarySession
- getCountryInfo
- getPhoneVerifMethod
- sendPinCodeForPhone
- verifyPhone
- validateProfile
- exchangeEncryptionKey
- setPassword
- registerPrimaryUsingPhone
- getPhoneVerifMethodV2
- requestToSendPhonePinCode
- verifyPhonePinCode
- verifyAccountUsingPwd
- registerPrimaryUsingPhoneWithTokenV3
- registerPrimaryWithTokenV3
- SearchService (WIP)
- searchAll
- searchCollection
- searchLineat
- searchByPopularCategory
- searchByCategory
- getPopularCategory
- getNotice
- getSearchSection
- getAutocomplete
- SecondaryPwlessLoginPermitNoticeService
- checkPwlessPinCodeVerified
- checkPaakAuthenticated
- SecondaryPwlessLoginService
- createPwlessSession
- verifyLoginCertificate
- requestPinCodeVerif
- putExchangeKey
- requestPaakAuth
- getE2eeKey
- pwlessLogin
- pwlessLoginV2
- SettingsService
- getSetting
- contextAgnosticGetSetting
- setSetting
- setSettingWithScope
- resetSetting
- searchSettings
- contextAgnosticSearchSettings
- bulkGetSetting
- bulkSetSetting
- ShopAuthService
- establishE2EESession
- ShopService
- getProduct
- getProductsByAuthor
- getStudentInformation
- canReceivePresent
- getOwnedProductSummaries
- getShowcaseV3
- getProductV2
- getProductByVersion
- placePurchaseOrderForFreeProduct
- placePurchaseOrderWithLineCoin
- placePurchaseOrderWithIAP
- getOwnedProducts
- getPurchasedProducts
- getReceivedPresents
- getSentPresents
- notifyProductEvent
- getProductValidationScheme
- validateProduct
- getProductsByBillingItemId
- getUpdates
- searchProductsV2
- getAggregatedHomeV2
- getAggregatedHomeNative
- getDynamicHomeNative
- getAggregatedPremiumHome
- getAggregatedShowcaseV4
- getRecommendationForUser
- getRecommendationList
- getCategories
- getResourceFile
- getAutoSuggestionShowcase
- getOldSticonMapping
- getSuggestResourcesV2
- SquareService
- inviteIntoSquareChat
- inviteToSquare
- getJoinedSquares
- markAsRead
- reactToMessage
- findSquareByInvitationTicket
- fetchMyEvents
- sendSquareMessage (text only)
- fetchSquareChatEvents
- getSquare
- getJoinableSquareChats
- createSquare
- getSquareChatAnnouncements
- SquareBotService
- getSquareBot
- ObsService
- forwardObjectMsg
- trainingImage
- updateProfileImage
- updateProfileCover
- uploadObjHome
- uploadObjTalk
- uploadMultipleImageToTalk
- TimelineService
- MyHome
- getProfileCoverDetail
- updateProfileCoverById
- sendContactV2
- getProfileDetail
- getTimelintTab
- getSocialProfileDetail
- getSocialProfileMediaDetail
- updateProfileDetail
- updateCmtLike
- getTalkroomStatus
- getHomeProfileBridge
- Post
- createPost
- updatePost
- deletePost
- getPost
- createComment
- deleteComment
- listComment
- createLike
- cancelLike
- listLike
- searchNote
- sendPostToTalk
- getHashtagPosts
- getHashtagSuggest
- getHashtagPopular
- getTimelineUrl
- getPostShareLink
- getDiscoverRecommendFeeds
- updateProfileCoverById2
- getOACarousel
- getPartlyBlockContacts
- getClosedContacts
- getHideContacts
- getAutoOpenOption
- getHideGrouphomeList
- getNewpostStatus
- getGroupProfileimageList
- getUserProfile
- getUserPopupDetail
- syncBuddygroup
- Album
- changeGroupAlbumName
- deleteGroupAlbum
- addImageToAlbum
- getAlbumImages
- deleteAlbumImages
- getAlbums
- getAlbumUsers
- Story (WIP)
- uploadStoryObject (WIP)
- createStoryContent (WIP)
- getRecentstoryStory
- sendMessageForStoryAuthor
- getNewStory
- Search
- Search
- Keep
- syncKeep
- GroupCallYT
- getYouTubeVideos
- getYouTubeVideosWithQuery
- getYouTubeVideosWithPopular
- getYouTubeVideosWithPlaylists
- BDB
- incrBDBCelebrate
- cancelBDBCelebrate
- getBDBBoard
- likeBDBCard
- unlikeBDBCard
- createBDBCard
- MyHome
- CubeService (beta)
- issueBillSplitId
- getBillSplitShareLink
- getBillSplitSurvey
- putBillSplitBills (test)
- snedBillSplitBills
- Others
- returnTicket (test)
- getModulesV2
- getCountrySettingV4
- getRSAKeyInfo
- loginZ
- loginV2
- TalkService