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
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
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
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
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()))
> /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
- Python 3.6
- pycrypto
- pycryptodome
- xxhash
- httpx[http2]
- gevent
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
- 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